ibatis笔记

IBatis是个半自动的ORM实现,因为里面的sql是自己写的,可以增加了程序的灵活性。JavaBean对象自动映射到sql。
它是MVC里dao层的一种对数据库操作的框架,它解决了操作数据库的代码重复,使代码的可读性更加清晰。它提供了数据映射功能。
 1,用类加载器加载一个属性文件。
 用类加载器获取一个字符串,加载一个文件。因为类加载器和我们的class文件是在同一个目录下。
 通过类加载器去加载一个配置文件,不需要指定绝对路径,因为类加载器和我们的class文件是在同一个目录下。
 对xml文件的每个节点调用了一个匿名类。把节点的属性转换成对象的每一个属性。
 2,用sax对文件进行解析。解析完返回sqlMapper。
 3,它的执行过程
 它使用了线程本地变量,这样的好处就是为了解决线程并发的现象。因为它在本地有一个它的副本,所以它的set,
 get不需要传入key值,因此两条线程互访的时候,只能各调各的,避免了以后出现的线程安全问题。而以前我们需
 要使用同步来达到并发,这样可以会导致线程死锁,性能下降。
ThreadLocal它不是一个Thread,而是Thread的局部变量。
 在这里用到了事物,事物是为保证数据的完整性,一致性,持久性。返回了一个事物管理器,然后启动里面的事物,
 拿到当前的事物的状态,看事物是否启动了,如果没启动,就直接抛出异常终结操作。接着它会通过connection设定
 事物的隔离级别。在这里我知道了所有JDBC默认的事物都是自动提交的,所以IBatis会把所有的默认事物取消掉,如
 果不取消的,那么代码执行一行就自动提交上去了。
在这里它使用代理,它在这里就是管理事物的,如启动事物,提交事物,关闭事物等的事情,代理起到一个承上启下的作用。
isAssignableFrom:判断这个类型是不是这个类的实现,也就是说是不是一个类型。
在执行sql语句的那个方法中,并没有用到职责链模式,所以耦合度是非常的高的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章