【Java进阶营】Mybatis框架的搭建和基本使用方法

1.1MyBatis****的下载

最新yBatis可以在github官网上下载:

https://github.com/mybatis/mybatis-3

1.2 Mybatis Jar****包

image.png

1.3MyBatis****工作原理

image.png

1.4Mybatis的整个的执行流程

image.png

MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSession。SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句,完成对数据的增删改查和事务提交等,用完之后关闭SqlSession。

2.第一个Mybatis****程序

2.1、建立java项目

2.2、建立student表(id,name,age,socre)

image.png

2.3、定义实体Student

image.png

2.4、定义接口IStudentDao

image.png

2.5.1、定义主配置文件

在pdf中搜索”mybatis-3-config.dtd”关键字,即可找到映射文件的约束。

image.png

image.png

2.5.2主配置文件详解

1)注册DB连接四要素属性文件

2)指定实体类全限定性类名的别名

对于实体类的全限定性类名的别名指定方式,一般合用方式,这样做的好处是会将该包中所有实体类的简单类型名指定为别名,写法简单方便。在此我向大家推荐一个架构学习交流圈。交流学习伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

3)指定映射文件

方式一:

<mapper resource=“com/jet/dao/StudentMapper.xml”/>

方式二:

<mapper class=“com.jet.dao.IStudentDao”/>

此方式,需要满足以下几个要求:

1)  映射文件名要与dao接口名称相同

2)  映射文件要与接口在同一包中

3)  映射文件中的的namespace属性值为dao接口的全类名

Insert into student(name,age,score)values(#{name},#{age},#{score});

方式三:

当映射方件较多时,也可以使用如下形式。其中package的name属性指定映射文件所放的包。

这种方式的使用需要满足以下几个条件:

1)  dao使用mapper动态代理实现

2)  映射文件名要与dao接口名称相同

3)  映射文件名与接口在同一包中

4)  映射文件中的的namespace属性值为dao接口的全类名

2.5.3从属性文件中读取jdbc的相关连接信息——创建主属性文件

image.png

2.6、定义映射文件mapper.xml,名称无所谓,一般放在接口下面,在pdf中查找”mabatis-3-mapper”dtd约束

image.png

2.7.1、定义Dao的实现类

image.png

2.7.2、 API详解

Dao中需要通过SqlSession对象来操作DB,而SqlSession对象的创建,需要其工厂对象SqlSessionFactory。SqlSessionFactory对象需要通过其构建器对象SqlSessionFactoryBuilder的build()方法,在加载了主配置文件的输入流对象后创建。

(1)   Resource类

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

(2) SqlSessionFactoryBuilder类

SqlSessionFactory的创建,需要使用SqlSessionFactoryBuilder对的build()方法。

(3) SqlSessionFactory

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

(4)SqlSession接口

SqlSession接口用于持久化操作。一个SqlSession对应着一次数据库会话,一次会话以SqlSession对象的创建开始,以SqlSession对象的关闭结束。

SqlSession接口对象是线程不安全的,所以每次数据库会话结束前,需要马上调用其close()方法,将其关闭。再次需要会话,再次创建。

而在关闭时会判断当前SqlSession是否被提交;若没有被提交,则会执行回滚。若已被提交,则直接将SqlSession关闭。

2.7.8、源码分析

1、输入流的关闭Resources

2、SqlSession的创建

3、增删改查的执行

4、SqlSession的commit()

5、Sqsession的close

2.8、定义测试类

image.png

2.9、添加日志控件文件

image.png

2.10、使用junit运行测试类,成功插入数据到数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值