Spring Boot:基于注解方式整合mybatise
一、构建Spring Boot项目(maven方式)
方式一:通过SPRING INITIALIZR方式构建
方式二:直接写pom文件构建(这里已经引入springboot相关的jar包以及mybatise相关的jar包)
<?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>
<groupId>com.yan</groupId>
<artifactId>otlan</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>otlan</name>
<description>Project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
</project>
构建后的maven项目结构为
二、application.properties配置
mybatis.type-aliases-package=com.neo.entity
mybatis.configuration.mapUnderscoreToCamelCase=true
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/otl?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = 123456
三、编写mapper
package com.yan.otlan.sys.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.yan.otlan.sys.data.User;
@Mapper
public interface UserMapper {
@Select("SELECT * FROM t_userinfo")
@Results({
@Result(property = "userNumber", column = "id"),
@Result(property = "id", column = "id")
})
List<User> getAll();
@Select("SELECT * FROM t_userinfo WHERE id = #{id}")
User getOne(Long id);
@Insert("INSERT INTO t_userinfo(username,password,user_number) VALUES(#{username}, #{password}, #{userNumber})")
void insert(User user);
@Update("UPDATE t_userinfo SET username=#{username},password=#{password} WHERE id =#{id}")
void update(User user);
@Delete("DELETE FROM t_userinfo WHERE id =#{id}")
void delete(Integer id);
}
四、建立mysql表
CREATE TABLE `NewTable` (
`id` int(10) NOT NULL AUTO_INCREMENT ,
`username` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL ,
`user_number` int(10) NULL DEFAULT NULL ,
`password` varchar(10) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL ,
`deptid` int(10) NULL DEFAULT NULL ,
UNIQUE INDEX `IDX_USERINFO_ID` (`id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=latin1 COLLATE=latin1_swedish_ci
AUTO_INCREMENT=7
ROW_FORMAT=COMPACT
;
五、测试
package com.yan.otlan.sys;
import java.util.List;
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 com.yan.otlan.sys.data.User;
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {
@Autowired
private com.yan.otlan.sys.mapper.UserMapper userMapper;
@Test
public void testGetOne() {
User user = userMapper.getOne(2l);
System.out.println(user);
}
@Test
public void testGetAll() {
List<User> users = userMapper.getAll();
for (User user : users) {
System.out.println(user);
}
}
@Test
public void testInsert() {
User user = new User();
user.setUsername("李四");
user.setUserNumber(0003);
user.setPassword("zhangsan");
userMapper.insert(user);
}
@Test
public void testUpdate() {
User user = new User();
user.setId(7);
user.setUsername("李四");
user.setPassword("lisi11");
userMapper.update(user);
}
@Test
public void testDelete() {
userMapper.delete(6);
}
}
直接运行测试就OK了