1、添加依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2、添加配置
数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=rooot
spring.datasource.password=123456
mybatis配置
mybatis.type-aliases-package=com.xiaolu.baseinfo.entity
mybatis.mapper-locations=classpath:com/xiaolu.baseinfo/mapper/*.xml
1、alias类别名配置
指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean, 比如
<typeAliases>
<package name="domain.blog"/>
</typeAliases>
每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 domain.blog.Author 的别名为 author;若有注解,则别名为其注解值。见下面的例子:
@Alias("author")
public class Author {
...
}
这样就在xml中写sql语句resulttype时可以用别名不需要用全名,如下
别名
<select id="queryOne" resultType="user">
select * from user;
</select>
全包名
<select id="queryAll" resultType="com.xiaolu.baseinfo.entity.User">
select * from user;
</select>
2、@Mapper注解、@MapperScan 与mybatis.mapper-locations
- @Mapper、@MapperSCan都是用来扫描接口的,@Mapper映射的是一个接口,@MapperScan映射一个包或多个包里面的接口
- mapper-locations是映射xml文件的位置
3、代码测试
properties配置
spring.datasource.url=jdbc:mysql://localhost:3306/user?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
mybatis.type-aliases-package=com.xiaolu.baseinfo.entity
mybatis.mapper-locations=classpath:com/xiaolu.baseinfo/mapper/*.xml
实体类
@Alias("user")
@Data
public class User {
private int id;
private String userName;
private String password;
}
mapper接口
@Mapper
@Repository
public interface UserMapper {
User queryOne(int id);
}
mapper.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="com.xiaolu.baseinfo.mapper.UserMapper">
<select id="queryOne" resultType="user">
select *
from user where id=#{id};
</select>
</mapper>
service类
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public String oneUser(int id) {
User user = userMapper.queryOne(id);
return user.toString();
}
}
controller类
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("oneUser")
public String oneUser(@RequestParam int id) {
return userService.oneUser(id);
}
}