这篇文章,主要介绍MyBatis框架以及如何搭建MyBatis开发运行环境。
目录
MyBatis最开始是叫做:iBatis,随着版本的变化,从iBatis3.x版本之后,就叫做:MyBatis。
MyBatis是一个使用Java语言编写的持久层框架,它主要是用于操作数据库的一个ORM框架,什么是ORM呢???
ORM,全称是:Object Relation Mapping,对象关系映射,意思就是将数据库中的记录和Java中的对象进行关联映射。
MyBatis上一个半自动化的ORM映射框架,什么是半自动化呢???这是因为在MyBatis框架里面,我们需要自己编写对应的SQL语句,而对于全自动化框架来说,全自动化是所有的代码都是框架给我们编写,开发人员不用自己编写一点SQL语句。
为什么会出现MyBatis框架呢???我们先来看下,最原始操作数据库的方式,在JavaWeb开发过程里面,基本都是通过最原始的JDBC操作数据库,使用JDBC的时候,我们需要创建数据库连接,编译SQL,获取到结果集之后还要我们自己将数据库的记录通过Java对象来进行保存。
通过使用JDBC来操作数据库,需要编写大量重复类似的代码,这就导致整个项目不好维护,并且会使项目变得非常臃肿,为了解决简化JDBC这种代码,就出现了MyBatis框架。
MyBatis框架本质上就是对JDBC代码的封装,它将JDBC中的创建数据库连接、查询结果集、数据库记录和Java对象映射等操作都进行了统一的封装管理,从而提高了开发效率。
下面介绍如何搭建一个MyBatis开发运行环境。
要使用MyBatis框架,那就需要下载MyBatis对应的jar包,可以通过两种方式引入MyBatis依赖。
这里我是通过maven进行依赖的下载,因为mybatis框架是操作数据库的,所以还需要引入数据库的依赖,这里我选择的是mysql数据库,完整依赖如下所示:
- <dependencies>
-
- <dependency>
- <groupId>mysqlgroupId>
- <artifactId>mysql-connector-javaartifactId>
- <version>8.0.28version>
- dependency>
-
- <dependency>
- <groupId>org.mybatisgroupId>
- <artifactId>mybatisartifactId>
- <version>3.5.10version>
- dependency>
- dependencies>
对于一个框架来说,配置文件是必不可少的了,MyBatis框架也有自己的配置文件,一般情况下,MyBatis框架的配置文件可以叫做:【mybatis-config.xml】,但是这个名称也可以是自己定义。
在【src/main/resources】目录下面,新建一个【mybatis-config.xml】配置文件,配置文件内容如下所示:
- configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
-
- configuration>
上面就是mybatis框架最基本的配置文件内容结构,之后在里面添加相应的配置内容即可,可以参考【入门_MyBatis中文网】。
MyBatis用于连接数据库的,所以我们要在配置文件里面添加数据源连接信息,这样才能够告诉MyBatis框架应该连接哪个数据库,操作哪个数据库。
- configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
-
- <environments default="development">
- <environment id="development">
-
- <transactionManager type="JDBC"/>
-
- <dataSource type="POOLED">
-
- <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
-
- <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
-
- <property name="username" value="root"/>
-
- <property name="password" value=""/>
- dataSource>
- environment>
- environments>
- configuration>
通过上面的数据源连接信息,MyBatis框架就能够知道,它需要连接哪个数据库了。
创建一个【User】实体类对象,这个对象中的属性和数据库中对应表字段对应。数据库中的一条记录,就会对应一个Java实体类对象。
- package com.mybatis.demo.domain;
-
- /**
- * @author ZhuYouBin
- * @version 1.0.0
- * @Date: 2022/8/7 15:13
- * @Description
- */
- public class User {
- private Integer id;
- private String username;
- private String password;
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- }
Mapper接口,就和JDBC里面的DAO接口一样,定义了一些专门用于操作数据库的接口方法。
- package com.mybatis.demo.mapper;
-
- import com.mybatis.demo.domain.User;
-
- import java.util.List;
-
- /**
- * @author ZhuYouBin
- * @version 1.0.0
- * @Date: 2022/8/7 15:14
- * @Description
- */
- public interface UserMapper {
- /**
- * 查询数据库记录
- * @return
- */
- List
queryList(); - }
Mapper映射文件是用于编写SQL语句的,所有操作数据库的SQL语句都编写对应的Mapper映射文件里面,MyBatis执行的时候就会从Mapper文件里面找到对应的SQL语句,然后执行并且返回结果。
在【src/main/resources】目录下,创建【UserMapper.xml】映射文件,内容如下所示:
- mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.mybatis.demo.mapper.UserMapper">
-
- <select id="queryList" resultType="com.mybatis.demo.domain.User">
- select * from user
- select>
- mapper>
创建的XML映射需要满足如下规则:

当我们创建好对应的Mapper接口和映射文件之后,这个时候还要告诉MyBatis去哪个目录下面找到对应的映射文件,所以就需要通过mybatis的配置较为添加Mapper映射文件的路径配置。
- <mappers>
-
- <mapper resource="UserMapper.xml"/>
- mappers>
到这里,基本上MyBatis的运行环境就搭建好了,现在就可以开始测试MyBatis啦。
- package com.mybatis.demo;
-
- import com.mybatis.demo.domain.User;
- import com.mybatis.demo.mapper.UserMapper;
- import org.apache.ibatis.io.Resources;
- import org.apache.ibatis.session.SqlSession;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.apache.ibatis.session.SqlSessionFactoryBuilder;
-
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.List;
-
- /**
- * @author ZhuYouBin
- * @version 1.0.0
- * @Date: 2022/8/7 15:27
- * @Description
- */
- public class MyBatisTest {
- public static void main(String[] args) throws IOException {
- // 1、加载MyBatis配置文件
- InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
- // 2、构造 SqlSessionFactoryBuilder
- SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
- // 3、创建 SqlSessionFactory
- SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
- // 4、创建 SqlSession
- SqlSession sqlSession = sqlSessionFactory.openSession();
- // 5、获取Mapper接口
- UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
- // 6、执行SQL语句
- List
users = userMapper.queryList(); - // 7、打印查询结果
- for (User user : users) {
- System.out.println(user);
- }
- // 8、关闭流
- is.close();
- }
- }
运行上面程序之后,就可以在控制台看到从数据库中查询出来的数据。

以上,就是MyBatis开发环境的搭建步骤。
综上,这篇文章结束了,主要介绍MyBatis框架以及如何搭建MyBatis开发运行环境。
【源代码地址:https://gitee.com/zhuyoubin/ssm_code/tree/master/mybatis/mybatis-demo】