嘘!这是一个抛弃JDBC的故事,认真点。

Java进阶学习交流

共 2312字,需浏览 5分钟

 ·

2021-09-11 04:49


点击上方“Java进阶学习交流”,进行关注

后台回复“Java”即可获赠Java学习资料

寄意寒星荃不察,我以我血荐轩辕。

01

MyBatis框架






111。。1



MyBatis介绍

  • 一个框架,早期叫做ibatis, 代码在github。

  • mybatis是(MyBatis SQL Mapper Framework for Java )(sql映射框架)

  • sql mapper : sql映射,可以把数据库表中的一行数据映射为一个java对象。一行数据可以看做是一个java对象。操作这个对象,就相当于操作表中的数据。

  • Data Access Objects(DAO) : 数据访问,对数据库执行增删改查。


2



MyBatis 提供的功能

  • 提供了创建Connection ,Statement, ResultSet的能力 ,不用开发人员创建这些对象了。

  • 提供了执行sql语句的能力,不用你执行sql。

  • 提供了循环sql,把sql的结果转为java对象、List集合的能力。

  • 提供了关闭资源的能力,不用你关闭Connection, Statement, ResultSet。



3



开发人员做的工作

开发人员负责提供sql语句--->MyBatis处理sql--->开发人员得到List集合或者java对象(表中的数据)。


4



MyBatis的总结概述

  • mybatis是一个sql映射框架,提供的数据库的操作能力。增强的JDBC, 使用mybatis让开发人员集中精神写sql就可以了,不必关心Connection,Statement,ResultSet 的创建,销毁,sql的执行。

02

MyBatis对象分析






1



Resources 类

Resources 类,顾名思义就是资源,用于读取资源文件。其有很多方法通过加载并解析资源文件,返回不同类型的IO流对象。


2



SqlSessionFactoryBuilder 类

SqlSessionFactory的创建,需要使用SqlSessionFactoryBuilder对象的build()方法。由于SqlSessionFactoryBuilder对象在创建完工厂对象后,就完成了其历史使命,即可被销毁。

所以,一般会将该SqlSessionFactoryBuilder 对象创建为一个方法内的局部对象,方法结束,对象销毁。


3



SqlSessionFactory接口

  • SqlSessionFactory 接口对象是一个重量级对象(系统开销大的对象),是线程安全的,所以一个应用 只需要一个该对象即可。创建SqlSession需使用SqlSessionFactory接口的openSession()方法。

  • SqlSessionFactory 这个接口的实现类是DefaultSqlSessionFactory。这个实现类中有openSession()方法,使用这个接口就是为了使用这个openSession()方法来获取SqlSession对象。


  • SqlSessionFactory作用 :获取SqlSession对象。

openSession()方法的几种形式:

➢ openSession(true):创建一个有自动提交功能的 SqlSession

➢ openSession(false):创建一个非自动提交功能SqlSession,需手动提交 。

➢ openSession():无参数获取的是非自动提交事务的SqlSession对象。


4



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学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报