dao是数据访问层,mybatis层主要作用就是将jdbc连接数据库,事务操作,数据访问的实现进行底层封装,让应用层从底层jdbc中抽取出来,通过配置文件来操作jdbc连接,实现持久化。
mybatis中有两个对象,
1sqlsessionFactory -mybatis核心。主要来创建sqlsession,由于sqlsessionFatory内存开销大, 需要用单例模式创建,是线程安全的。
2sqlsession mybatis核心,操作数据库的对象,是应用程序与持久层之间执行交互操作的一个单线程对象,底层封装jdbc连接,sqlsession可以直接操作被映射的sql语句(从java中映射到数据库)
SqlSession也是线程不安全的,绝对不能讲SqlSeesion实例的引用放在一个类的静态字段甚至是实例字段中.也绝不能将SqlSession实例的引用放在任何类型的管理范围中
bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
</bean>
spring整合mybatis中,这样就创建了一个sqlsessionfactory实力