Mybatis常用注解总结

本文详细介绍了Mybatis框架中常用的注解,包括@Insert、@Update、@Delete、@Select等基本操作注解,以及@Result、@Results、@ResultMap、@One、@Many等用于结果集封装和复杂关系映射的高级注解。通过这些注解,开发者可以更加灵活地进行数据库操作和数据映射。

一.Mybatis常用注解

1>@Insert :

		 实现新增

2>@Update:

		 实现更新

3>@Delete:

		 实现删除

4>@Select:

		实现查询

5>@Result:

		 实现结果集封装

6>@Results:

		 可以与@Result 一起使用,封装多个结果集

7>@ResultMap:

		 实现引用@Results 定义的封装

8>@One:

		 实现一对一结果集封装

9>@Many:

		 实现一对多结果集封装

10>@CacheNamespace:

		 实现注解二级缓存的使用

复杂关系映射的注解说明

1>@Results 注解

	代替的是标签<resultMap>

2>@Resutl 注解

	代替了 <id> 标签和<result> 标签

3>@One 注解(一对一)

	代替了<assocation> 标签,是多表查询的关键,在注解中用来指定子查询返回单一对象

4>@Many 注解(多对一)

	代替了<assocation> 标签,是多表查询的关键,在注解中用来指定子查询返回单一对象
### MyBatis 常用注解及其功能说明 #### 1. `@Mapper` 注解 `@Mapper` 是 MyBatis 提供的一个核心注解,主要用于标记接口为 MyBatis 的 Mapper 接口。当使用注解方式定义 SQL 时,需要在接口上加上此注解以便被识别并完成映射关系[^1]。 ```java @Mapper public interface UserMapper { // 方法定义... } ``` --- #### 2. `@Param` 注解 `@Param` 主要用于给方法参数命名,在多参数场景下尤为重要。它允许开发者为每个参数设置别名,从而可以在 SQL 中通过 `${}` 或 `#{}` 方式引用对应的参数值[^3]。 示例代码如下: ```java @Select("SELECT * FROM users WHERE username = #{username} AND password = #{password}") User findUser(@Param("username") String uname, @Param("password") String pwd); ``` 上述例子中,`uname` 和 `pwd` 被分别绑定到 SQL 查询中的 `username` 和 `password` 参数位置。 --- #### 3. `@ResultType` 注解 `@ResultType` 用于指定查询结果返回的对象类型。它可以配合其他注解(如 `@Select`, `@Insert` 等)一起使用,简化了复杂对象的映射过程[^4]。 示例代码如下: ```java @Select("SELECT name, age FROM users WHERE id = #{id}") @ResultType(User.class) User getUserById(Long id); ``` 在此处,`@ResultType(User.class)` 表明查询的结果会被自动封装成 `User` 类型实例。 --- #### 4. `@Results` 和 `@Result` 注解组合 对于复杂的字段映射需求,可以通过 `@Results` 配合多个 `@Result` 来实现自定义映射逻辑。这种方式适用于表结构与实体类不完全一致的情况。 示例代码如下: ```java @Select("SELECT user_id AS id, full_name AS name FROM users WHERE id = #{userId}") @Results({ @Result(property = "id", column = "user_id"), @Result(property = "name", column = "full_name") }) User getUserById(int userId); ``` 这里,`property` 定义的是 Java 对象属性名称,而 `column` 则对应数据库列名。 --- #### 5. 数据操作相关注解 (`@Insert`, `@Update`, `@Delete`) MyBatis 还提供了针对增删改查的操作注解,分别是 `@Insert`, `@Update`, 和 `@Delete`。它们可以直接嵌入 SQL 语句来执行相应的 DML 操作。 ##### 插入数据 ```java @Insert("INSERT INTO users (name, age) VALUES (#{name}, #{age})") void insertUser(String name, int age); ``` ##### 更新数据 ```java @Update("UPDATE users SET age = #{age} WHERE id = #{id}") int updateUserAge(int id, int age); ``` ##### 删除数据 ```java @Delete("DELETE FROM users WHERE id = #{id}") int deleteUserById(int id); ``` --- #### 总结 以上列举了几种常用MyBatis 注解及其具体用途。这些注解不仅减少了 XML 文件的冗余配置,还提高了开发效率和代码可读性[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值