下面将详细讲解“SpringBoot整合TKMyBatis实现单表增删改查操作”的完整攻略。
1. 导入依赖
首先,在项目的 pom.xml
文件中导入以下依赖:
<!-- SpringBoot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- MyBatis Starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
2. 配置数据源
在 application.properties
或 application.yml
文件中添加以下配置:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
3. 配置MyBatis
在 application.properties
或 application.yml
文件中添加以下配置:
mybatis.type-aliases-package=com.example.demo.entity
mybatis.mapper-locations=classpath:mapper/*.xml
4. 创建实体类
创建一个用于映射数据库表的实体类,例如:
public class User {
private Long id;
private String name;
private Integer age;
// ... getters and setters
}
5. 创建Mapper接口和Mapper XML文件
创建一个继承 Mapper<T>
接口的Mapper,其中的 T
就是对应的实体类,例如:
public interface UserMapper extends Mapper<User> {
}
然后,在项目的 resources/mapper
目录下创建一个与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.example.demo.mapper.UserMapper">
<!-- 增加数据 -->
<insert id="insert" parameterType="com.example.demo.entity.User">
INSERT INTO user(name, age) VALUES(#{name}, #{age})
</insert>
<!-- 删除数据 -->
<delete id="delete" parameterType="java.lang.Long">
DELETE FROM user WHERE id=#{id}
</delete>
<!-- 修改数据 -->
<update id="update" parameterType="com.example.demo.entity.User">
UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}
</update>
<!-- 查询数据 -->
<select id="select" resultType="com.example.demo.entity.User">
SELECT * FROM user WHERE id=#{id}
</select>
</mapper>
6. 编写Service
创建一个用于调用Mapper的Service,例如:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public void insert(User user) {
userMapper.insert(user);
}
public void delete(Long id) {
userMapper.deleteByPrimaryKey(id);
}
public void update(User user) {
userMapper.updateByPrimaryKey(user);
}
public User select(Long id) {
return userMapper.selectByPrimaryKey(id);
}
}
7. 编写Controller
创建一个用于处理HTTP请求的Controller,例如:
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/user")
public void insert(User user) {
userService.insert(user);
}
@DeleteMapping("/user/{id}")
public void delete(@PathVariable("id") Long id) {
userService.delete(id);
}
@PutMapping("/user")
public void update(User user) {
userService.update(user);
}
@GetMapping("/user/{id}")
public User select(@PathVariable("id") Long id) {
return userService.select(id);
}
}
示例1
假设我们希望添加一个新用户,可以通过以下代码实现:
User user = new User();
user.setName("Tom");
user.setAge(20);
userService.insert(user);
这会将一个名为 "Tom" 年龄为 20 的用户添加到数据库中。
示例2
假设我们希望删除一个ID为5的用户,可以通过以下代码实现:
userService.delete(5L);
这会删除ID为5的用户。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合TKMyBatis实现单表增删改查操作 - Python技术站