这里我使用的开发环境
IDE:idea 2022.2.1
构建工具:maven 3.8.6
MySQL版本:MySQL 8.0.29
MyBatis版本:MyBatis 3.5.11
所以我们提前工作需要配置变量环境和修改配置文件等等操作才可以进行之后的搭建测试,这里就不过细去说了,利用搜索引擎也很容易查到
MyBatis的下载地址
GitHub - mybatis/mybatis-3: MyBatis SQL mapper framework for JavaMyBatis SQL mapper framework for Java. Contribute to mybatis/mybatis-3 development by creating an account on GitHub.https://github.com/mybatis/mybatis-3/正戏开始:
①在idea中创建一个Maven项目
Maven规定了一套默认的项目格式:
src/main/java -- 存放项目的.java文件。(主程序)
src/main/resources -- 存放项目资源文件,如Spring,struts2配置文件,db.properties。(配置文件)
src/test/java -- 存放所以测试.java文件,如JUnit测试类(测试程序)
target -- 项目由maven自动输出位置
pom.xml -- 主要写的maven配置文件
②在pom.xml设置打包方式
③引入依赖
这里直接复制就可以
org.mybatis
mybatis
3.5.11
junit
junit
4.12
test
mysql
mysql-connector-java
8.0.29
因为MyBatis封装的是JDBC,它的作用就是连接数据库,操作数据库中的数据。接着我们就需要创建一个表来进行我们的下一步操作
于是创建了如下这张表
因为表和实体类是对应关系的,所以我们就可以紧接着把它的实力类给创建出来
创建包com.tian.mybatis.pojo,写一个User实体类,并把它的属性,构造器,getset方法,toString方法(目的方便查询)。
package com.tian.mybatis.pojo;
public class User {
private Integer id;
private String username;
private String password;
private Integer age;
private String gender;
private String email;
public User() {
}
public User(Integer id, String username, String password, Integer age, String gender, String email) {
this.id = id;
this.username = username;
this.password = password;
this.age = age;
this.gender = gender;
this.email = email;
}
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;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
", email='" + email + '\'' +
'}';
}
}
在resources下面创建一个mybatis-config.xml核心配置文件,将下面的内容复制进行,在官方文档也可以
创建mapper接口,和pojo一个目录
package com.tian.mybatis.mapper;
public interface UserMapper {
int insertUser();
}
我们的一个mapper接口对应着MyBatis的映射文件的一个sql语句
创建MyBatis的映射文件
ORM:对象关系映射
对象:Java的实体类对象
关系:关系型数据库
映射:二者之间的对应关系
java概念 数据库概念
类 表
属性 字段/列
对象 记录/行
在resources下面创建一个mappers目录文件,再在其下面创建一个UserMapper.xml映射文件,来写我们所需要的sql语句
insert into t_user values(null,'admin','123456',23,'男','[email protected]')
当我们保持了一致之后,我们每一次去调用Mapper接口中的方法,都可以直接去找到我们当前映射文件中的一个sql语句来执行
写完映射文件之后别忘了,如果我们创建了映射文件,那我们一定要把映射文件引入到我们当前的核心配置文件中,于是在mybatis-config.xml中添加上
在src/test/java中创建com.tian.mybatis.test包和一个MyBatisTest测试类,并在此类中成功测试
package com.tian.mybatis.test;
import com.tian.mybatis.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 org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
public class MyBatisTest {
@Test
public void testInsert() throws IOException {
//获取核心配置文件的输入流
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//获取SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//获取SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//获取sql的会话对象SqlSession,是MyBatis提供的操作数据库的对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//获取UserMapper的代理实现类对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//调用mapper接口中的方法,实现添加用户信息的功能
int result = mapper.insertUser();
System.out.println("结果:" + result);
//提交事务
sqlSession.commit();
//关闭SqlSession
sqlSession.close();
}
}