Mybatis对JDBC的改进总结
一、JDBC的连接获取
1.通过class.forName()获取数据库对应的驱动类
2.使用DriverManger注册驱动,并获取Connection连接,此时放入数据库连接的属性
3.通过连接获取Statement或者PreparedStatement或CallableStatement执行SQL语句,获取结果集ResultSet
4.获取结果集转成对应的对象时,需要通过反射获取类中对应属性并传入值例如Student.class.getDeclaredField(ColumnName)
二、JDBC通过连接池获取
在一中所述的连接流程是基于DriverManager,这种连接是没有连接池的,而JDBC也可以通过连接池获取:
通过实现javax.sql包下的标准接口:DataSource ,或者直接使用C3P0或Druid等提供的数据库连接池接口。
三、Mabatis的连接获取
1.使用简单的xml文件来配置
2.使用SqlSessionFactoryBuilder读取配置文件,获取SqlSessionFactory,再使用SqlSessionFactory的OpenSession方法获取SqlSession,
3.Sqlsession相当于Connection和Statement,(此时mybatis中的datasource包括PooledDataSource和UnpooledDataSource,JNDIDataSource,是ManagedTransaction的成员属性,与Spring中的Datasource接口不同,Spring中提供的DataSource大多是连接池如C3p0)SqlSession在进行CRUD操作时,才会创建数据库连接,而不是在创建SqlSession时就会连接。
4.mybatis把所有sql语句都放到了XML文件中,并在其中将结果配置成了对应的pojo对象,省去了手动对应属性的麻烦。对比第一项中的第4步.
四、DataSource的理解
1.javax.sql下的标准接口DataSource
2.Mybatis中的dataSource 的类型可以配置成其内置类型之一,如 UNPOOLED,POOLED,JNDI。
3.Spring中的Datasource在xml中配置对应的类
datasource是数据源而不是数据库连接池,可分为有连接池和没有连接池的。
五、JDBC和Spring的整合
六、Mybatis和Spring的整合
整合都是在xml文件中配置相应的datasource的类,并注入相应的类,如JDBCTemplate和SqlSessionFactoryBean