下面是关于SpringBoot整合Mybatis实现增删改查的详细攻略:
1. 环境搭建
在开始之前,你需要在本地安装好以下软件:
- JDK 1.8或以上版本
- Maven
- MySQL数据库
在安装好上述软件后,你可以新建一个SpringBoot项目,这里使用的是IntelliJ IDEA,你可以通过IDEA创建SpringBoot项目并选择添加Mybatis Starter依赖,如下所示:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot.version}</version>
</dependency>
2. 数据库配置
接下来,我们需要在application.properties
文件中配置数据库相关的信息,该文件路径为:src/main/resources/application.properties
。在文件中添加以下内容:
# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
# MyBatis配置
mybatis.type-aliases-package=com.example.entity
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
其中,spring.datasource.url
为数据库连接地址,spring.datasource.username
和spring.datasource.password
为数据库账号和密码,mybatis.type-aliases-package
为实体类所在的包名,mybatis.mapper-locations
为mapper接口所在的包名。
在完成数据库配置后,可以在IDEA中依次右击工程名称->Maker Directory as ->Resources Folder,创建一个resources文件夹。
3. 实体类和Mapper接口文件
接下来,我们需要创建实体类和Mapper接口文件。首先是实体类,在com.example.entity
包下新建一个User实体类:
public class User {
private Long id;
private String name;
private Integer age;
// 省略getter和setter方法
}
然后,我们需要新建一个Mapper接口,该接口位于com.example.mapper
包下,示例如下:
@Mapper
@Repository
public interface UserMapper {
User selectByPrimaryKey(Long id);
int insert(User user);
int updateByPrimaryKey(User user);
int deleteByPrimaryKey(Long id);
}
需要注意的是,在UserMapper
接口上添加@Mapper
注解,表示该接口是Mybatis的Mapper接口;而@Repository
注解则表示该类是一个Repository Bean。
在创建Mapper接口后,需要在resources
文件夹下新建一个mapper文件夹,并在该文件夹下添加UserMapper.xml
文件,示例如下:
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectByPrimaryKey" resultType="com.example.entity.User">
select * from user where id = #{id}
</select>
<insert id="insert" parameterType="com.example.entity.User">
insert into user(name, age) values(#{name}, #{age})
</insert>
<update id="updateByPrimaryKey" parameterType="com.example.entity.User">
update user set name=#{name},age=#{age} where id=#{id}
</update>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from user where id =#{id}
</delete>
</mapper>
在select
、insert
、update
和delete
标签中,id
属性为对应的Mapper接口中方法名,parameterType
属性为Mapper接口方法的参数类型,resultType
属性为查询结果的实体类类型。
4. Service层
接下来,我们需要新建一个Service接口和实现类,在com.example.service
包下创建UserService接口,示例如下:
public interface UserService {
User selectByPrimaryKey(Long id);
int insert(User user);
int updateByPrimaryKey(User user);
int deleteByPrimaryKey(Long id);
}
然后,在com.example.service.impl
包下创建UserServiceImpl
类,示例如下:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User selectByPrimaryKey(Long id) {
return userMapper.selectByPrimaryKey(id);
}
@Override
public int insert(User user) {
return userMapper.insert(user);
}
@Override
public int updateByPrimaryKey(User user) {
return userMapper.updateByPrimaryKey(user);
}
@Override
public int deleteByPrimaryKey(Long id) {
return userMapper.deleteByPrimaryKey(id);
}
}
需要注意的是,在UserServiceImpl
类上添加@Service
注解,表示该类是一个Service Bean。同时,我们在该类中注入了UserMapper
接口,使用该接口中的方法来操作数据库。
5. Controller层
最后,我们需要在com.example.controller
包下创建一个UserController类,示例如下:
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User selectByPrimaryKey(@PathVariable("id") Long id) {
return userService.selectByPrimaryKey(id);
}
@PostMapping("")
public int insert(@RequestBody User user) {
return userService.insert(user);
}
@PutMapping("")
public int updateByPrimaryKey(@RequestBody User user) {
return userService.updateByPrimaryKey(user);
}
@DeleteMapping("/{id}")
public int deleteByPrimaryKey(@PathVariable("id") Long id) {
return userService.deleteByPrimaryKey(id);
}
}
需要注意的是,在UserController
类上添加@RestController
注解,表示该类是一个处理HTTP请求的Controller Bean。在类中注入了UserService
接口,并在方法中调用该接口中的方法。
6. 代码测试
在完成上述操作后,我们已经可以在浏览器中访问http://localhost:8080/user/1
来查询用户ID为1的记录了。现在,我们可以使用Postman来进行增、删、改操作。示例如下:
插入记录
- 请求方式:POST
- URL:http://localhost:8080/user
- 请求头:Content-Type: application/json
- 请求体:
{
"name": "test",
"age": 25
}
更新记录
- 请求方式:PUT
- URL:http://localhost:8080/user
- 请求头:Content-Type: application/json
- 请求体:
{
"id": 1,
"name": "update",
"age": 30
}
删除记录
- 请求方式:DELETE
- URL:http://localhost:8080/user/1
至此,我们完成了SpringBoot整合Mybatis简单实现增删改查的攻略。在实际开发中,我们还可以通过分页和条件查询等方式来增强用户操作体验。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合Mybatis简单实现增删改查 - Python技术站