整合mybatis
导入相应jar
mybatis-spring-boot-starter这个从命名上就能看出他不是spring官方的,我们需要用这个来进行整合mybatis
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
url: jdbc:mysql://localhost:3306/aw?Unicode=true&characterEncoding=utf-8&serverTimezone=UTC
mybatis:
# mppaer配置文件的位置
mapper-locations: classpath:mybatis/mapper/*.xml
# 对应实体类的位置
type-aliases-package: com.aw.springmybatis.model
实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String name;
private String age;
private String sex;
private Integer score;
}
mapper接口
@Mapper注解是将这个接口交给spring进行托管 我们不使用我们只需要在启动类上面添加@MapperScan(接口文件的位置)
//@Mapper
@Repository
public interface UserMapper {
List<User> queryAllUser();
User getByIdUser(@PathVariable("id") Integer id);
int addUser(User user);
}
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.aw.springmybatis.mapper.UserMapper">
<select id="queryAllUser" resultType="com.aw.springmybatis.model.User">
select * from student;
</select>
<select id="getByIdUser" resultType="com.aw.springmybatis.model.User">
select * from student where id=#{id}
</select>
<insert id="addUser">
insert into student(name,age,sex,score) value (#{name},#{age},#{sex},#{score})
</insert>
</mapper>
controller
@RestController
public class UserController {
@Resource
UserMapper userMapper;
@GetMapping("/all")
private List<User> queryAll(){ return userMapper.queryAllUser();
}
@GetMapping("/byId/{id}")
private User getId(@PathVariable("id") Integer id){
return userMapper.getByIdUser(id);
}
@GetMapping("/add")
private int add(){
return userMapper.addUser(new User("xx","12","男",12));
}
}