引入依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- MYSQL包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
由于 mybatis.mapper-locations=classpath:com/battcn/mapper/*.xml
配置的在java package
中,而Spring Boot默认只打入java package -> *.java
,所以我们需要给pom.xml文件添加如下内容
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/chapter6?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
spring.datasource.password=root
spring.datasource.username=root
# 注意注意
mybatis.mapper-locations=classpath:com/battcn/mapper/*.xml
#mybatis.mapper-locations=classpath:mapper/*.xml #这种方式需要自己在resources目录下创建mapper目录然后存放xml
mybatis.type-aliases-package=com.battcn.entity
# 驼峰命名规范 如:数据库字段是 order_id 那么 实体字段就要写成 orderId
mybatis.configuration.map-underscore-to-camel-case=true
实体Model
@Getter
@Setter
public class User3 implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Long id;
private String username;
private String password;
public User3() {}
public User3(String username, String password) {
this.username = username;
this.password = password;
}
}
Mapper
这里提供了两种方式操作接口,第一种带@Select注解的是Mybatis3.x提供的新特性,同理它还有@Update、@Delete、@Insert等等一系列注解,第二种就是传统方式了,写个接口映射,然后在XML中写上我们的SQL语句
UserMapper.java
@Mapper
public interface UserMapper {
/**
* 根据用户名查询用户结果集
*
* @param username 用户名
* @return 查询结果
*/
@Select("SELECT * FROM t_user WHERE username = #{username}")
List<User3> findByUsername(@Param("username") String username);
/**
* 保存用户信息
*
* @param user 用户信息
* @return 成功 1 失败 0
*/
int insert(User3 user);
}
UserMapper.xml
<?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="xin.rtime.mapper.UserMapper">
<insert id="insert" parameterType="xin.rtime.model.User3">
INSERT INTO `t_user`(`username`,`password`) VALUES (#{username},#{password})
</insert>
</mapper>
验证示例
@EnableAutoConfiguration
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Chapter6ApplicationTests.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class Chapter6ApplicationTests {
private static final Logger log = LoggerFactory.getLogger(Chapter6ApplicationTests.class);
@Autowired
private UserMapper userMapper;
@Test
public void test1() throws Exception {
final int row1 = userMapper.insert(new User3("u1", "p1"));
log.info("[添加结果] - [{}]", row1);
final int row2 = userMapper.insert(new User3("u2", "p2"));
log.info("[添加结果] - [{}]", row2);
final int row3 = userMapper.insert(new User3("u1", "p3"));
log.info("[添加结果] - [{}]", row3);
final List<User3> u1 = userMapper.findByUsername("u1");
log.info("[根据用户名查询] - [{}]", u1);
}
}