1.datasource接口是javax.sql包下的接口,不是spring,是javax.sql下的
datasource接口有个重要的方法getConnection()方法
Connection getConnection(String username, String password) throws SQLException;那些spring支持的数据库连接池,都是实现了Datasource接口
比如下面是阿里的DruidDatasource数据库连接池源码,它就是实现了datasource的getConnection()方法
只要是实现了这个方法的类,就都可以当spring的datasource
@Override public DruidPooledConnection getConnection() throws SQLException { return getConnection(maxWait); } public DruidPooledConnection getConnection(long maxWaitMillis) throws SQLException { init(); if (filters.size() > 0) { FilterChainImpl filterChain = new FilterChainImpl(this); return filterChain.dataSource_connect(this, maxWaitMillis); } else { return getConnectionDirect(maxWaitMillis); } }
2.jdbcTemplate才是spring的利器,在springframework.jdbc包下
3.所以spring如果想的话,也可以自己去连接数据库,自己去执行sql语句,不用mybatis或者hibernate。
就用spring自己的jdbcTemplate就行啊,只不过没有了orm匹配而已啊
4.如果要用mybatis、hibernate它们去连接数据库的话,就要用它们的类似jdbcTemplate了啊,比如mybatis的sqlsessionTemplate。
5.所以spring中,去操控数据库的话就分为三步骤:1.连数据库,datasource 2.找个利器去操控sql语言,jdbcTemplate或者sqlsessionfactory 3.将利器注入到spring ioc容器中
6.1.spring整合mybatis 的核心是 SqlSessionFactoryBean、MapperFactoryBean(单一接口)
7.1.spring整合mybatis 的核心是 SqlSessionFactoryBean、MapperFactoryBean(单一接口)
8.1.spring整合mybatis 的核心是 SqlSessionFactoryBean、MapperFactoryBean(单一接口)
转载于:https://www.cnblogs.com/panxuejun/p/6770624.html