本文已参与「新人创作礼」活动,一起开启掘金创作之路。
先创建一个新的maven项目
然后把配置文件放pom.xml中在刷新导入
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.10</version>
</dependency>
</dependencies>
全选后创建好四个文件
创建mybatis-config配置文件
文件内容
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 加载log4j -->
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<!-- 配置匿名包 -->
<typeAliases>
<package name="com.item.model"></package>
</typeAliases>
<!-- 数据库配置 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/cs?characterEncoding=utf-8"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</dataSource>
</environment>
</environments>
<!-- 引入映射文件列表 -->
<mappers>
<mapper resource="mappers/UserMapper.xml"></mapper>
</mappers>
</configuration>
创建测速数据库
/*
Navicat MySQL Data Transfer
Source Server : 127.0.0.1
Source Server Type : MySQL
Source Server Version : 80027
Source Host : localhost:3306
Source Schema : cs
Target Server Type : MySQL
Target Server Version : 80027
File Encoding : 65001
Date: 13/05/2022 20:13:24
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for sss
-- ----------------------------
DROP TABLE IF EXISTS `sss`;
CREATE TABLE `sss` (
`ids` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`orderdate` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`cost` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sss
-- ----------------------------
INSERT INTO `sss` VALUES ('1', 'jack', '2020-01-12', '30');
INSERT INTO `sss` VALUES ('2', 'rose', '2020-01-12', '40');
INSERT INTO `sss` VALUES ('3', 'tom', '2020-01-12', '50');
INSERT INTO `sss` VALUES ('4', 'tom', '2020-01-22', '60');
INSERT INTO `sss` VALUES ('5', 'jack', '2020-02-12', '70');
INSERT INTO `sss` VALUES ('6', 'jack', '2020-01-10', '70');
SET FOREIGN_KEY_CHECKS = 1;
创建实体类
package com.mybatis.pojo;
public class User {
private String ids;
private String name;
private String orderdate;
private String cost;
@Override
public String toString() {
return "User{" +
"ids='" + ids + '\'' +
", name='" + name + '\'' +
", orderdate='" + orderdate + '\'' +
", cost='" + cost + '\'' +
'}';
}
public String getIds() {
return ids;
}
public void setIds(String ids) {
this.ids = ids;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOrderdate() {
return orderdate;
}
public void setOrderdate(String orderdate) {
this.orderdate = orderdate;
}
public String getCost() {
return cost;
}
public void setCost(String cost) {
this.cost = cost;
}
}
创建mapper接口
public interface UserMapper {
List<Users> GetInfo();
}
创建MyBatis映射文件
创建mappers文件夹专门用来存放配置文件
名字和map接口名字保持一致写入映射文件
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.pojo.mapper.UserMapper">
<insert id="insertUser">
insert into sss values(null,'admin','2020-01-12','200')
</insert>
</mapper>
namespace的值跟mapper接口的路径一致
id 是sql语句的唯一标识 映射文件中Sql语句的id要和mapper接口中的方法名保持一致 当他调用接口的时候就可以通过map接口中的全类名找到映射文件 然后在通过匹配的方法名找到匹配的ID sql语句
引入配置文件
修改映射文件为mappers中的路径
测试功能
package com.mybatis.pojo.Action;
import com.mybatis.pojo.mapper.UserMapper;
import com.mybatis.pojo.model.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 javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;
public class MyBatis {
public static void main(String[] args) throws IOException {
//加载核心配置文件
//通过字节输入流来获取
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlsessionfactory = sqlSessionFactoryBuilder.build(resourceAsStream);
//获取操作数据库的会话对象,代码java和数据库之间的会话
SqlSession sqlSession = sqlsessionfactory.openSession();
//获取mapper接口对象
//返回一个接口对应的实现类的对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//测试功能
int result = mapper.insertUser();
System.out.println(result);
//提交事务
sqlSession.commit();
sqlSession.close();
}
}