嘘!这是一个抛弃JDBC的故事,认真点。
共 2312字,需浏览 5分钟
·
2021-09-11 04:49
后台回复“Java”即可获赠Java学习资料
01
MyBatis框架
MyBatis介绍
一个框架,早期叫做ibatis, 代码在github。
mybatis是(MyBatis SQL Mapper Framework for Java )(sql映射框架)
sql mapper : sql映射,可以把数据库表中的一行数据映射为一个java对象。一行数据可以看做是一个java对象。操作这个对象,就相当于操作表中的数据。
Data Access Objects(DAO) : 数据访问,对数据库执行增删改查。
MyBatis 提供的功能
提供了创建Connection ,Statement, ResultSet的能力 ,不用开发人员创建这些对象了。
提供了执行sql语句的能力,不用你执行sql。
提供了循环sql,把sql的结果转为java对象、List集合的能力。
提供了关闭资源的能力,不用你关闭Connection, Statement, ResultSet。
开发人员做的工作
开发人员负责提供sql语句--->MyBatis处理sql--->开发人员得到List集合或者java对象(表中的数据)。
MyBatis的总结概述
mybatis是一个sql映射框架,提供的数据库的操作能力。增强的JDBC, 使用mybatis让开发人员集中精神写sql就可以了,不必关心Connection,Statement,ResultSet 的创建,销毁,sql的执行。
02
MyBatis对象分析
Resources 类
Resources 类,顾名思义就是资源,用于读取资源文件。其有很多方法通过加载并解析资源文件,返回不同类型的IO流对象。
SqlSessionFactoryBuilder 类
SqlSessionFactory的创建,需要使用SqlSessionFactoryBuilder对象的build()方法。由于SqlSessionFactoryBuilder对象在创建完工厂对象后,就完成了其历史使命,即可被销毁。
所以,一般会将该SqlSessionFactoryBuilder 对象创建为一个方法内的局部对象,方法结束,对象销毁。
SqlSessionFactory接口
SqlSessionFactory 接口对象是一个重量级对象(系统开销大的对象),是线程安全的,所以一个应用 只需要一个该对象即可。创建SqlSession需使用SqlSessionFactory接口的openSession()方法。
SqlSessionFactory 这个接口的实现类是DefaultSqlSessionFactory。这个实现类中有openSession()方法,使用这个接口就是为了使用这个openSession()方法来获取SqlSession对象。
SqlSessionFactory作用 :获取SqlSession对象。
openSession()方法的几种形式:
➢ openSession(true):创建一个有自动提交功能的 SqlSession
➢ openSession(false):创建一个非自动提交功能SqlSession,需手动提交 。
➢ openSession():无参数获取的是非自动提交事务的SqlSession对象。
SqlSession接口
SqlSession 接口对象用于执行持久化操作。一个 SqlSession 对应着一次数据库会话,一次会话以 SqlSession 对象的创建开始,以 SqlSession 对象的关闭结束。SqlSession 接口对象是线程不安全的,所以每次数据库会话结束前,需要马上调用其 close()方法,将 其关闭。再次需要会话,再次创建。SqlSession 在方法内部创建,使用完毕后关闭。
SqlSession 接口 : 定义了操作数据的方法。例如 selectOne() 、selectList() 、insert()、update()、delete()、commit()、rollback()。
SqlSession接口的实现类DefaultSqlSession。
03
mybatis动态代理
mybatis根据 dao的方法调用,获取执行sql语句的信息。mybatis根据你的dao接口,创建出一个dao接口的实现类,并创建这个类的对象。成SqlSession调用方法,访问数据库。
就是我们不用在自己创建 StudentDao接口的实现类 StudentDaoImpl由mybatis根据dao接口自己创建出这个实现类,并完成数据的调用。这个时候我们只需要提供接口即可,剩下的交给mybatis。
------------------- End -------------------
往期精彩文章推荐:
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Java学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行