目录
一、MyBatis简介
1.1 MyBatis介绍
MyBatis是一个
半自动
的ORM
框架ORM(Object Relational Mapping)对象关系映射,将Java中的一个对象与数据表中一行记录一一对应。
ORM框架提供了实体类与数据表的映射关系,通过映射文件的配置,实现对象的持久化。
Github:GitHub - mybatis/mybatis-3: MyBatis SQL mapper framework for Java
-
MyBatis的前身是iBatis,iBatis是Apache软件基金会提供的一个开源项目
-
2010年iBatis迁移到Google code,正式更名为MyBatis
-
2013年迁移到Github托管
-
MyBatis特点:
-
支持自定义SQL、存储过程
-
对原有的JDBC进行了封装,几乎消除了所有JDBC代码,让开发者只需关注SQL本身
-
支持XML和注解配置方式自定完成ORM操作,实现结果映射
-
持久化-->数据持久化
-
持久化就是将程序的数据在持久状态和瞬时状态转化的过程
-
内存:断电即失
-
数据库(Jdbc),io文件持久化
-
生活方面例子:冷藏,罐头。
为什么需要持久化?
-
不想丢掉一些对象
-
内存太贵
持久层
Dao层,Service层,Controller层…
-
完成持久化工作的代码块
-
层界限十分明显
为什么需要Mybatis?
-
帮助程序猿将数据存入到数据库中
-
方便
-
传统的JDBC代码太复杂,简化–>框架–>自动化
最重要的一点:使用的人多! Spring-SpringMVC-SpringBoot
二、MyBatis框架部署
框架部署,就是将框架引入到我们的项目中
思路:搭建环境–>导入Mybatis–>编写代码–>测试
2.1 创建Maven项目
-
Java工程
-
Web工程
2.2 在项目中添加MyBatis依赖
-
在pom.xml中添加依赖
-
mybatis
-
mysql driver
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency>
-
2.3 创建MyBatis配置文件
-
创建自定义模板:选择resources----右键New----Edit File Templates
-
在resources中创建名为
mybatis-config.xml
的文件 -
在
mybatis-config.xml
文件配置数据库连接信息<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 在environments配置数据库连接信息 --> <!-- 在environments标签中可以定义多个environment标签,每个environment标签可以定义一套连接配置 --> <!-- default属性,用来指定使用哪个environment标签 --> <environments default="mysql"> <environment id="mysql"> <!--transactionManager标签用于配置数据库管理方式--> <transactionManager type="JDBC"></transactionManager> <!--dataSource标签就是用来配置数据库连接信息 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="admin123"/> </dataSource> </environment> </environments> </configuration>
三、MyBatis框架使用
案例:学生信息的数据库操作
3.1 创建数据表
tb_students |
---|
3.2 创建实体类
Student.java (导入lombok依赖) |
---|
3.3 创建DAO接口,定义操作方法
StudentDAO.java |
---|
3.4 创建DAO接口的映射文件
-
在
resources
目录下,新建名为mappers
文件夹 -
在
mappers
中新建名为StudentMapper.xml
的映射文件(根据模板创建) -
在映射文件中对DAO中定义的方法进行实现:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--mapper文件相当于DAO接口的‘实现类’,namespace属性要指定`实现`DAO接口的全限定名-->
<mapper namespace="com.qfedu.dao.StudentDAO">
<insert id="insertStudent">
insert into tb_students(stu_num,stu_name,stu_gender,stu_age)
values(#{stuNum},#{stuName},#{stuGender},#{stuAge})
</insert>
<delete id="deleteStudent">
delete from tb_students where stu_num=#{stuNum}
</delete>
</mapper>
3.5 将映射文件添加到主配置文件
mybatis-config.xml |
---|
四、单元测试
4.1 添加单元测依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
4.2 创建单元测试类
在被测试类名后alt+insert --- 选择Test |
---|