准备
1、使用Mysql数据库,创建表user
create table user (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL COMMENT '用户名',
`nickname` varchar(32) NOT NULL DEFAULT '' COMMENT '昵称',
`password` varchar(64) NOT NULL DEFAULT '' COMMENT '密码',
PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
整合
1、添加依赖
mybatis-spring-boot-starter:1.3.1
在pom.xml中添加对Mybatis的依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
2、配置
- 配置数据源
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=
- 配置Mybatis
如果需要的话,可以进行配置,这里只列举两个最常用的。
#引入Mybatis配置文件
mybatis.config-location=classpath:mybatis/mybatis-config.xml
#自动加载Mapper文件
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
- 配置Mapper扫描器
有两种方式可以进行配置
第一种方式:在启动类上添加@MapperScan注解进行配置
@SpringBootApplication
@MapperScan(basePackages="com.mh.**.repository")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
第二种方式:在Mapper接口上添加@Mapper注解
@Mapper
public interface UserRepository {
}
3、编码
- 添加User实体类
public class User {
private Long id;
private String nickname;
private String username;
private String password;
// get/set 方法
}
- 添加Mapper接口
public interface UserRepository {
@Insert("insert into user(username, nickname, password) values(#{username}, #{nickname}, #{password})")
int addUser(@Param("username") String username, @Param("nickname") String nickname, @Param("password") String password);
@Delete("delete from user where id = #{id}")
int deleteUser(int id);
@Update("update user set nickname=#{nickname} where id = #{id}")
int updateNickname(@Param("nickname") String nickname, @Param("id") int id);
@Select("select * from user where username = #{username}")
@Results({
@Result(property = "id", column = "id"),
@Result(property = "username", column = "username"),
@Result(property = "nickname", column = "nickname"),
@Result(property = "password", column = "passwd")
})
User findByUsername(String username);
}
- 使用XML文件编写SQL(使用XML文件与使用注解编写SQL语句,只能二选一)
<?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="com.demo.repository.UserRepository">
<resultMap id="BaseResultMap" type="com.demo.model.User" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="username" property="username" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="nickname" property="nickname" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,username,password,nickname
</sql>
<select id="findUserByUsername" parameterType="java.lang.String" resultMap="BaseResultMap" >
SELECT
<include refid="Base_Column_List" />
FROM ueri_user
WHERE username = #{username}
</select>
</mapper>
测试
1、添加测试的依赖
全部的追加内容为
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!-- webmvc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2、编写测试用例
@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTests {
@Autowired
private UserRepository userRepository;
@Test
public void contextLoads() {
userRepository.addUser("test", "testuser", "123");
User user = userRepository.findUserByUsername("test");
System.out.println(user);
}
}