目录
官网:https://mybatis.net.cn/getting-started.html
一创建maven项目,添加依赖
ogback依赖,用于日志https://blog.csdn.net/qq_45514735/article/details/125511476
mybaitis依赖
数据库驱动
以上依赖都可以在这里查到
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
二编写mybatis核心配置
在resources中建立
mybatis-config.xml这个文件是用来配置数据库连接和驱动的,注意要结合自己的实际环境修改
<mappers>
<mapper resource="user.xml"/>
</mappers>标签中存放的是sql映射文件的,要执行的sql语句提前写好放进去。
<?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 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://alpine:3306/class"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="user.xml"/>
</mappers>
</configuration>
三准备好数据表
/*
Navicat Premium Data Transfer
Source Server : alpine-docker-mysql
Source Server Type : MySQL
Source Server Version : 80029
Source Host : alpine:3306
Source Schema : class
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 10/07/2022 10:58:51
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`user_id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`psw` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`id_m` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`tim_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`gm` int NULL DEFAULT NULL,
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '112', '1', '6291fc72de5e6', '20220528', 1);
INSERT INTO `user` VALUES (2, '1212', '1212', '62a1780eccc87', '20220609', 1);
INSERT INTO `user` VALUES (3, '孟凡杰', '孟凡杰', '5f083a11a4666', '20200710', 1);
INSERT INTO `user` VALUES (4, '4', '4', '5f083a310e383', '20200710', NULL);
SET FOREIGN_KEY_CHECKS = 1;
四创建用于存储信息的类
mybatis自动将查询到的的每一行数据自动封装到对象中,我们需要提前预设对象属性。
package pojo;
public class User {
private Integer user_id;
private String name;
private String psw;
private String id_m;
private Integer tim_id;
private Integer gm;
public Integer getUser_id() {
return user_id;
}
public void setUser_id(Integer user_id) {
this.user_id = user_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPsw() {
return psw;
}
public void setPsw(String psw) {
this.psw = psw;
}
public String getId_m() {
return id_m;
}
public void setId_m(String id_m) {
this.id_m = id_m;
}
public Integer getTim_id() {
return tim_id;
}
public void setTim_id(Integer tim_id) {
this.tim_id = tim_id;
}
public Integer getGm() {
return gm;
}
public void setGm(Integer gm) {
this.gm = gm;
}
@Override
public String toString() {
return "User{" +
"user_id=" + user_id +
", name='" + name + '\'' +
", psw='" + psw + '\'' +
", id_m='" + id_m + '\'' +
", tim_id=" + tim_id +
", gm=" + gm +
'}';
}
}
五编写sql映射文件
在resources中建立
user.xml其中,“test" "selectall"是查询语句的坐标,调用时”test.selectall"的方式进行调用,类似于java的类。而resultType="pojo.User"则是我们自己创建的用来让mybatis自动存储查询到的数据的对象。
<?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 namespace="test">
<select id="selectall" resultType="pojo.User">
select * from user;
</select>
</mapper>
六测试代码
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 pojo.User;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class emo {
public static void main(String[] args) throws IOException {
//1.加载核心配置,获取SqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//2.获取sqlsiooin
SqlSession sqlSession=sqlSessionFactory.openSession();
//3.执行sql
List<User> users = sqlSession.selectList("test.selectall");
System.out.println(users);
//4.关闭资源
sqlSession.close();
}
}
运行结果:
[User{user_id=1, name='112', psw='1', id_m='6291fc72de5e6', tim_id=20220528, gm=1}, User{user_id=2, name='1212', psw='1212', id_m='62a1780eccc87', tim_id=20220609, gm=1}, User{user_id=3, name='孟凡杰', psw='孟凡杰', id_m='5f083a11a4666', tim_id=20200710, gm=1}, User{user_id=4, name='4', psw='4', id_m='5f083a310e383', tim_id=20200710, gm=null}]进程已结束,退出代码0