Explication détaillée des meilleures pratiques pour configurer MyBatis dans Spring Boot, des exemples de code spécifiques sont requis
Spring Boot est un framework de développement permettant de créer rapidement des applications basées sur le framework Spring. MyBatis est un excellent framework de couche de persistance qui peut être intégré de manière transparente à Spring Boot. Cet article détaillera les meilleures pratiques pour configurer MyBatis dans Spring Boot et fournira des exemples de code spécifiques.
1. Ajouter des dépendances
Tout d'abord, ajoutez les dépendances de MyBatis et du pilote de base de données dans le fichier pom.xml. L'exemple de code est le suivant :
<dependencies> <!-- MyBatis依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <!-- 数据库驱动依赖 --> <dependency> <groupId>com.mysql.cj</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.18</version> </dependency> </dependencies>
2. Configurez la source de données
La configuration de la source de données est la première étape de la configuration de MyBatis. Dans Spring Boot, nous pouvons configurer la source de données dans le fichier application.properties
ou application.yml
. L'exemple de code est le suivant : application.properties
或application.yml
文件中配置数据源。示例代码如下:
spring: datasource: url: jdbc:mysql://localhost:3306/mydatabase username: root password: password driver-class-name: com.mysql.cj.jdbc.Driver
三、创建Mapper接口
Mapper接口是MyBatis映射文件与Java接口之间的桥梁。在Spring Boot中,我们可以使用@Mapper
注解来标记Mapper接口,并使用@Repository
注解来标记其作为Repository存储库的组件。示例代码如下:
@Mapper @Repository public interface UserMapper { // 添加用户 void addUser(User user); // 查询用户 List<User> getUsers(); // 更新用户 void updateUser(User user); // 删除用户 void deleteUser(int id); }
四、创建Mapper XML 文件
Mapper XML是MyBatis框架用来实现SQL语句的映射文件。在Spring Boot中,我们可以在resources
目录下创建mapper
<?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.mapper.UserMapper"> <resultMap id="UserResultMap" type="com.example.entity.User"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> </resultMap> <insert id="addUser" parameterType="com.example.entity.User"> INSERT INTO user(name, age) VALUES(#{name}, #{age}) </insert> <select id="getUsers" resultMap="UserResultMap"> SELECT id, name, age FROM user </select> <update id="updateUser" parameterType="com.example.entity.User"> UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id} </update> <delete id="deleteUser" parameterType="int"> DELETE FROM user WHERE id = #{id} </delete> </mapper>
@Mapper
pour marquer l'interface Mapper, et l'annotation @Repository
pour la marquer comme composant du référentiel Repository. L'exemple de code est le suivant : @Service public class UserService { private final UserMapper userMapper; @Autowired public UserService(UserMapper userMapper) { this.userMapper = userMapper; } public void addUser(User user) { userMapper.addUser(user); } public List<User> getUsers() { return userMapper.getUsers(); } public void updateUser(User user) { userMapper.updateUser(user); } public void deleteUser(int id) { userMapper.deleteUser(id); } }
mapper
dans le répertoire resources
et enregistrer le fichier XML Mapper dans ce dossier. L'exemple de code est le suivant : @RestController @RequestMapping("/users") public class UserController { private final UserService userService; @Autowired public UserController(UserService userService) { this.userService = userService; } @GetMapping public List<User> getUsers() { return userService.getUsers(); } @PostMapping public void addUser(@RequestBody User user) { userService.addUser(user); } @PutMapping("/{id}") public void updateUser(@PathVariable int id, @RequestBody User user) { user.setId(id); userService.updateUser(user); } @DeleteMapping("/{id}") public void deleteUser(@PathVariable int id) { userService.deleteUser(id); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!