spring-boot整合mybatis
1.pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.10.RELEASE</version>
</parent>
<groupId>com.bjsxt</groupId>
<artifactId>springboot-mybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
</project>
2.创建实体类User
package com.bjsxt.entity;
import java.io.Serializable;
import java.util.Objects;
public class User implements Serializable {
private Integer id;
private String username;
private String password;
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return Objects.equals(id, user.id) &&
Objects.equals(username, user.username) &&
Objects.equals(password, user.password);
}
@Override
public int hashCode() {
return Objects.hash(id, username, 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;
}
public User() {
}
public User(Integer id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
}
3.创建mapper接口UserMapper
package com.bjsxt.mapper;
import com.bjsxt.entity.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* springboot环境中使用mybatis注解开发,则不需要提供任何配置文件
* 因为@Mapper注解会通知springboot容器,到当前接口同名包中找同名的.xml配置文件,
* 生成动态代理对象。
*/
@Mapper
public interface UserMapper {
@Insert("insert into my_user(id,username,password) values (#{id},#{username},#{password})")
int insertUser(User user);
@Select("select id,username,password from my_user")
List<User> selectAllUser();
}
创建对应的UserMapper.xml---->创建位置在resources/com/bjsxt/mapper下
<?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">
<!--
namespace属性:
属性不是必要的,但是不写会报异常
-->
<mapper namespace="com.bjsxt.mapper.UserMapper">
<!--@@identity mysql数据库内置对象,代表当前会话最近一次的自增数据是什么-->
<insert id="insertUser">
insert into my_user(id,username,password) values (#{id},#{username},#{password}) ;
<selectKey keyColumn="id" keyProperty="id" order="AFTER">
select @@identity as id;
</selectKey>
</insert>
<select id="selectAllUser" resultType="com.bjsxt.entity.User">
select id,username,password from my_user;
</select>
</mapper>
4.配置文件application.properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2D8
# mybatis生成mapper动态代理需要什么?
# springboot自动创建sqlsessionFactoryBean
mybatis.type-aliases-package=com.bjsxt.entity
# 配置mapper扫描的配置
mybatis.config-location=classpath:com/bjsxt/mapper/*.xml
5.创建启动类
package com.bjsxt;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringMybatisApp {
public static void main(String[] args) {
SpringApplication.run(SpringMybatisApp.class,args);
}
}
6.创建测试类
package com.bjsxt.test;
import com.bjsxt.SpringMybatisApp;
import com.bjsxt.entity.User;
import com.bjsxt.mapper.UserMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(value = SpringRunner.class)
@SpringBootTest(classes = SpringMybatisApp.class)
public class TestMybatis {
@Autowired
private UserMapper userMapper;
@Test
public void testInsert(){
User user = new User();
user.setUsername("admin7");
user.setPassword("admin7");
this.userMapper.insertUser(user);
System.out.println(user);
}
@Test
public void testSelect(){
List<User> userList = this.userMapper.selectAllUser();
for(User user:userList){
System.out.println(user);
}
}
}