À mesure que l'échelle des sites Web continue de croître, les développeurs Java doivent de plus en plus gérer un grand nombre d'opérations de base de données. Face à cette situation, si vous utilisez des instructions SQL traditionnelles pour le développement, il est facile d'avoir du code en double et redondant. Si vous utilisez un framework de développement, vous pouvez éviter ces problèmes. Parmi eux, MyBatis-Plus est un framework très populaire qui peut être utilisé pour le traitement CRUD dans le développement d'API Java.
Dans cet article, nous expliquerons en détail comment utiliser MyBatis-Plus pour le traitement CRUD. Plus précisément, nous verrons comment utiliser MyBatis-Plus pour le traitement CRUD à table unique et CRUD multi-tables.
Dans le traitement CRUD à table unique, nous devons d'abord créer une classe d'entité, puis mapper la classe d'entité à la table de base de données. Ensuite, nous pouvons utiliser les méthodes fournies par MyBatis-Plus pour le traitement CRUD.
Tout d'abord, nous devons créer une classe d'entité pour enregistrer les données dont nous avons besoin pour fonctionner. Dans cette classe d'entité, elle contient généralement des attributs de base et des méthodes getter et setter. Voici un exemple :
@Data @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email; }
Dans cette classe d'entité, nous utilisons les annotations MyBatis-Plus pour mapper les noms de tables et les clés primaires. Parmi elles, l'annotation @TableName("user")
indique que le nom de table correspondant à cette classe d'entité est user
, et @TableId(type = IdType. AUTO) L'annotation code> indique le type d'auto-incrémentation de la clé primaire.
@TableName("user")
注解表示这个实体类对应的表名是 user
,而 @TableId(type = IdType.AUTO)
注解表示主键的自增类型。
接下来,我们就可以使用 MyBatis-Plus 提供的 DAO 接口进行 CRUD 处理了。MyBatis-Plus 提供了一些常用的 CRUD 方法,比如 insert()
, updateById()
, selectById()
等等。
@Repository public interface UserDao extends BaseMapper<User> { }
在上面的例子中,我们只需要继承 BaseMapper
接口,就可以使用其中的 CRUD 方法了。具体地说,我们可以使用 insert()
方法插入一条数据:
@Autowired private UserDao userDao; public void insertUser(User user) { userDao.insert(user); }
使用 updateById()
方法更新一条数据:
public void updateUser(User user) { userDao.updateById(user); }
使用 selectById()
方法查询一条数据:
public User selectUserById(Long id) { return userDao.selectById(id); }
使用 deleteById()
方法删除一条数据:
public void deleteUserById(Long id) { userDao.deleteById(id); }
除了单表 CRUD 处理以外, MyBatis-Plus 还支持多表 CRU 处理。在多表操作中,我们通常会通过联表查询来获取所需要的数据。
与单表 CRUD 不同的是,多表操作需要创建多个实体类,并将它们之间的关系建立起来。下面是一个例子:
@Data public class ArticleVO { private Long id; private String title; private String content; private List<CommentVO> comments; } @Data public class CommentVO { private Long id; private String content; private Long articleId; }
在这个例子中,我们创建了两个实体类:ArticleVO
和 CommentVO
。ArticleVO
实体类中包含了一个 List<CommentVO>
类型的属性,表示一篇文章对应多个评论。
在多表 CRUD 处理中,我们需要使用 MyBatis-Plus 所提供的联表查询方法来获取所需要的数据。MyBatis-Plus 提供了一个 selectJoin()
方法来进行联表查询。
@Repository public interface ArticleDao extends BaseMapper<Article> { @Select("SELECT a.*, c.id AS comment_id, c.content AS comment_content FROM article a LEFT JOIN comment c ON a.id = c.article_id WHERE a.id = #{id}") ArticleVO selectArticleWithCommentsById(Long id); }
在上面的代码中,我们通过 LEFT JOIN
实现了 ArticleVO
和 CommentVO
之间的联表查询。这条 SQL 语句查询了一篇文章对应的所有评论,并将它们的信息存储在 ArticleVO
和 CommentVO
insert()
, updateById()
, selectById()
et ainsi de suite. rrreee
Dans l'exemple ci-dessus, il suffit d'hériter de l'interfaceBaseMapper
pour utiliser la méthode CRUD. Plus précisément, nous pouvons utiliser la méthode insert()
pour insérer une donnée : 🎜rrreee🎜Utilisez la méthode updateById()
pour mettre à jour une donnée : 🎜rrreee🎜 Utilisez la méthode selectById()
pour interroger une donnée : 🎜rrreee🎜Utilisez la méthode deleteById()
pour supprimer une donnée : 🎜rrreee🎜CRUD multi-table🎜 🎜En plus du traitement CRUD à table unique, MyBatis-Plus prend également en charge le traitement CRU de plusieurs tables. Dans les opérations multi-tables, nous obtenons généralement les données requises via des requêtes de tables conjointes. 🎜🎜Création de classes d'entités🎜🎜À la différence du CRUD à table unique, les opérations multi-tables nécessitent la création de plusieurs classes d'entités et l'établissement de relations entre elles. Voici un exemple : 🎜rrreee🎜Dans cet exemple, nous créons deux classes d'entités : ArticleVO
et CommentVO
. La classe d'entité ArticleVO
contient un attribut de type Liste<CommentVO>
, qui indique qu'un article correspond à plusieurs commentaires. 🎜🎜Utilisez MyBatis-Plus pour le traitement CRUD🎜🎜Dans le traitement CRUD multi-tables, nous devons utiliser la méthode de requête de table commune fournie par MyBatis-Plus pour obtenir les données requises. MyBatis-Plus fournit une méthode selectJoin()
pour effectuer des requêtes de table conjointe. 🎜rrreee🎜Dans le code ci-dessus, nous implémentons la requête de table commune entre ArticleVO
et CommentVO
via LEFT JOIN
. Cette instruction SQL interroge tous les commentaires correspondant à un article et stocke leurs informations dans deux classes d'entités : ArticleVO
et CommentVO
. 🎜🎜Résumé🎜🎜Dans cet article, nous expliquons en détail comment utiliser MyBatis-Plus pour le traitement CRUD à table unique et CRUD multi-tables. Grâce à l'encapsulation de MyBatis-Plus, nous pouvons obtenir un code plus concis, facile à lire et à maintenir. MyBatis-Plus possède également de nombreuses autres fonctionnalités et fonctions qui peuvent nous aider à développer plus efficacement des applications liées aux bases de données. 🎜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!