文章目录官方中文文档–>https://mybatis.org/mybatis-3/zh/getting-started.html
或点击–>mybatis文档
mybatis3版本的源码–>https://github.com/mybatis/mybatis-3/releases
或点击–>mybatis3源码
- 1.什么是mybatis
- 2.基础搭建使用
- (1)添加相关maven依赖
- (2)创建用户实体类User
- (3)创建核心配置文件`mybatis-config.xml`
- (4)创建持久层接口UserMapper
- (5) 创建持久层映射配置文件`UserMapper.xml`
- (6)去核心配置文件`mybatis-config.xml`配置`mapper`映射文件
- (7)测试使用;这里几个步骤比较重要;
- 7.1-->先创建用户对象
- 7.2-->以字符流的方式读取核心配置文件`mybatis-config.xml`
- 7.3-->创建SqlSessionFactory对象
- 7.4-->创建SqlSession对象
- 7.5-->得到UserMapper映射接口的代理对象
- 7.6-->执行接口方法
- 7.7-->提交事务
- 7.8-->关闭sqlSession会话
- MybatisX插件的简易安装
mybatis是个轻量级的持久层框架;简化了持久层的使用;它是由iBatis更名而来的.
基于Java的数据库交互框架;封装了很多基础功能,方便开发使用.
mybatis框架也被称为ORM框架
ORM(ORM Object Relational Mapping ) 即:对象关系映射;
即使用简单的 XML或注解来配置和映射原生信息,将接口和 Java的实体类POJO(Plain Old Java Objects,普通的 Java 对象)映射为数据库中的记录.
官方文档–>https://mybatis.org/mybatis-3/zh/getting-started.html
持久层是什么呢?
Dao (Data Access Objects) 数据访问对象 ;也就是负责项目中的JAVA实体类对象与数据库进行交互;
之前比较经典的MVC三层架构,就有它的一席之位;
MVC三层架构是啥呢?
M(Model):就是Dao层和实体类模型层;
V(View):就是视图层;即前端的展示层;
C(Controller):就是控制层,即对之前的servlet进行了封装;
使用mybatis框架的话;就不用大量地去写代码手动设置参数以及获取结果集;
例如,之前写某个项目时,写的dao层;没有封装的那种;
要写很多的参数,然后获取结果集时还得一个一个取出;
传统的jdbc编程;比如说一个根据ID查询学生信息的sql处理;
2.基础搭建使用
- 首先要加载数据库驱动;
- 然后创建并获取数据库链接;
- 创建 preparedStatement 对象;
- 拼写 sql 语句,进行预编译;;
- 然后设置 sql 语句中的占位符的值;
- 执行 sql 语句并获取结果;
- 对 sql 执行结果进行解析处理;要把结果一个一个地存到实体类的对象中;
- 最后释放资源;
先去数据库创建数据表吧,比较简单,仅作为基础搭建mybatis使用的;
-- 学习mybatis框架;
-- 创建数据库;
CREATE DATAbase IF NOT EXISTS day20211024_study_mybatis_db CHARSET utf8;
-- 创建用户表;
CREATE TABLE IF NOT EXISTS t_user(
`id` INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID',
`account` VARCHAR(15) COMMENT '账户',
`password` VARCHAR(10) COMMENT '密码',
`address` VARCHAR(20) COMMENT '地址'
);
直接创建javaEE项目
不用选web;直接下一步
(1)添加相关maven依赖写好项目名;存放地址;打包后的路径,构建名,版本号
要使用mybatis,那么首先就得用添加它的jar包依赖;
当然,由于要和数据库交互,那么还要配置mysql连接的驱动jar包依赖
在maven核心配置文件pom.xml中
org.mybatis mybatis 3.4.2 mysql mysql-connector-java 8.0.22
创建实体类User
(2)创建用户实体类UserUser类的配置
package com.xiaozhi.pojo;
public class User {
//属性,id,账户,密码,地址;
private int id;
private String account;
private String password;
private String address;
//构造方法;
public User() {
}
//这里构造方法初始化时就没包括ID;
public User(String account, String password, String address) {
this.account = account;
this.password = password;
this.address = address;
}
//getter,setter;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
(3)创建核心配置文件mybatis-config.xml
在main目录的resources目录下创建mybatis-config.xml
本次简易搭建,没有将所有的配置参数属性都考虑;
(4)创建持久层接口UserMapper
package com.xiaozhi.mapper;
import com.xiaozhi.pojo.User;
public interface UserMapper {
//添加新用户;
void addUser(User user);
}
(5) 创建持久层映射配置文件UserMapper.xml
在resources目录下创建mapper文件夹;创建UserMapper.xml配置文件
(6)去核心配置文件mybatis-config.xml配置mapper映射文件insert into t_user(account,password,address) values (#{account},#{password},#{address})
(7)测试使用;这里几个步骤比较重要; 7.1–>先创建用户对象
//先创建用户对象;
User user = new User("小智","123654789","陕西汉中");
7.2–>以字符流的方式读取核心配置文件mybatis-config.xml
//第一步:用字符流的方式去读取核心配置文件mybatis-config.xml;
//注意;导包的时候-->用 ibatis 下的包,不要导错了;
Reader resourceAsReader = Resources.getResourceAsReader("mybatis-config.xml");
7.3–>创建SqlSessionFactory对象
一旦创建,SqlSessionFactory 就会在整个应用过程中始终存在。所以没有理由去销毁和再创建它,一个应用运行中也不建议多次创建 SqlSessionFactory
//第二步;创建sqlSessionFactory对象; SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);
7.4–>创建SqlSession对象注意,这里使用的build方法,还能指定环境变量啊;即刚才的核心配置文件中的环境变量environment;
不写这个参数的话,就默认为环境配置environments的default来指定默认使用的环境变量;
SqlSession就类似于JDBC中的Connection连接对象;表示一次与数据库连接的会话;
//第三步 SqlSession对象; SqlSession sqlSession = sqlSessionFactory.openSession();7.5–>得到UserMapper映射接口的代理对象
//第四步,得到UserMapper映射接口的代理对象; UserMapper userMapper = sqlSession.getMapper(UserMapper.class);7.6–>执行接口方法
但实际上执行了UserMapper.xml下的sql语句
//第五步,执行方法; userMapper.addUser(user);7.7–>提交事务
//第六步;提交事务; sqlSession.commit();7.8–>关闭sqlSession会话
//第七步;关闭sqlSession会话; sqlSession.close();
TestByXiaoZhi类总配置
package com.xiaozhi.test;
import com.xiaozhi.mapper.UserMapper;
import com.xiaozhi.pojo.User;
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.Reader;
public class TestByXiaoZhi {
public static void main(String[] args) throws IOException {
//先创建用户对象;
User user = new User("小智","123654789","陕西汉中");
//第一步:用字符流的方式去读取核心配置文件mybatis-config.xml;
//注意;导包的时候-->用 ibatis 下的包,不要导错了;
Reader resourceAsReader = Resources.getResourceAsReader("mybatis-config.xml");
//第二步;创建sqlSessionFactory对象;
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);
//第三步 SqlSession对象;
SqlSession sqlSession = sqlSessionFactory.openSession();
//第四步,得到UserMapper映射接口的代理对象;
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//第五步,执行方法;
userMapper.addUser(user);
//第六步;提交事务;
sqlSession.commit();
//第七步;关闭sqlSession会话;
sqlSession.close();
}
}
执行;这个也没写返回值类型;
那么去数据库看看吧;数据已经成功添加
整体搭建
MybatisX插件的简易安装那个忍者小鸟的图标是使用了MybatisX插件;
打开IDEA的设置;找到Plugins插件管理;搜索MybatisX ,在线安装之后,重启IDEA即可使用了



