mybatis之前记录过了。本以为可以快乐的开发项目,但是没想到在springboot中使用mybatis还不一样,那么我就在这里记录一下。
请注意,sprngboot中使用的mybatis是专门为springboot设计的,单独引用依赖的话需要在springboot找到如下
<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>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.0</version>
</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>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
然后在springboot 中使用mybatis,我们不需要在创建SqlSession,,只用写接口然后调用即可,那么数据库连接池的使用也只需配合自己即可。
首先我们先配置一下mybatis
server.port=8081
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=
spring.datasource.password=
spring.datasource.url=jdbc:mysql://localhost:3306/graduateddesign
//会扫描以下路径的 mapper文件,读取这些文件来实现增删改查
mybatis.mapper-locations=classpath:/mapper/*.xml
//扫描实体类
mybatis.type-aliases-package=com.example.demo.pojo
接下来,创建四个包
controller dao service mapper包
完善mapper包,mapper包中只写关于接口
@Repository
public interface USER {
int insert(user user);
}
当然在这里我们可以使用@Mapper注解来将这个类的接口和XXXMapper链接起来,当然也可以在
启动类中使用@MapperScan("com.example.demo.mapper")来一次性扫描全部的mapper接口类。
然后在rescourse中编写XXXMapper文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.USER">
<insert id="insert">
insert into userbaseinfo(account,username,password) values(#{account},#{username},#{password})
</insert>
</mapper>
正常的编写mybatis接口,但是请注意 namespace="com.example.demo.mapper.USER"必须是类名 id必须和接口名对应
然后完善Service类
在service中创建user,然后调用即可
@RestController
public class qq {
@Autowired
private userService userService;
@PostMapping("/q" )
public void insertq(@RequestBody user user ){
userService.insert(user);
}
}
请注意使用 @RequstBody来获得json数据
实际上前端传递数据给后端的方式有很多,还有很多注解可以使用