1.Mybatis接口式编程开发步骤:
1、根据全局配置文件,利用SqlSessionFactoryBuilder创建SqlSessionFactory
2.使用SqlSessionFactory获取sqlSession对象。一个SqlSession对象代表和数据库的一次会话
![](https://img2020.cnblogs.com/blog/892002/202009/892002-20200903072720077-269411913.png)
3. 使用SqlSession获取映射器进行操作
注意:
Mappe接口没有实现类,通过将Mapper接口和Mapper.xml文件进行动态绑定,Mybatis会自动为这个接口创建一个代理对象,执行增删改查操作。
1、线程安全:
指多个线程在执行同一段du代码的时候采用加锁机制,使每次的执行结果dao和单线程执行的结果都是一样的,不存在执行程序时出现意外结果。
2、线程不安全:
是指不提供加锁机制保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。
举例说明:假设售票系统有1000张票,A和B同时来买票,如果是线程不安全,那么可能售票系统可能出现1000-1去同时执行的情况,最终结果是A和B都买完后剩下999张票,而不是998张。
3. SqlSession 的实例不是线程安全的,因此是不能被共享的。
SqlSession和Connection一样都是非线程安全的,因此就不能将他写成一个类的成员变量,会在多线程情况下存在资源竞争,有可能A线程将SqlSession给关了,B线程还在用;因此每次使
用都应该获取新的对象。
4. 一个SqlSession对象代表和数据库的一次会话,SqlSession每次使用完成后需要正确关闭,这个关闭操作是必须的