MyBatis接口的方法上使用,定义对应的 SQL 操作
2024-01-03 06:10:49
MyBatis 是一款基于 Java 的持久层框架,它通过简化数据库操作来帮助开发者构建更好的数据库访问应用。
一、@Mapper:
- 含义:用于标记一个 Mapper 接口。
用例:在 Mapper 接口上使用,告诉 MyBatis 这是一个映射器接口。
@Mapper
public interface UserMapper {
User getUserById(Long id);
List<User> getAllUsers();
void insertUser(User user);
}
二、@Select、@Insert、@Update、@Delete:
- 含义:分别表示 SELECT、INSERT、UPDATE、DELETE 操作。
用例:在 Mapper 接口的方法上使用,定义对应的 SQL 操作。
@Mapper
public interface UserMapper {
@Select("SELECT * FROM users WHERE id = #{id}")
User getUserById(Long id);
@Insert("INSERT INTO users(name, age) VALUES(#{name}, #{age})")
void insertUser(User user);
@Update("UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}")
void updateUser(User user);
@Delete("DELETE FROM users WHERE id = #{id}")
void deleteUser(Long id);
}
三、@Results、@Result:
- 含义:用于定义结果映射规则。
用例:在 @Select 注解中使用,将查询结果映射为实体类。
@Select("SELECT * FROM users")
@Results({
@Result(property = "id", column = "id"),
@Result(property = "name", column = "name"),
@Result(property = "age", column = "age")
})
List<User> getAllUsers();
四、@Param:
- 含义:用于给方法参数取别名,提高可读性。
用例:在方法参数前使用,指定参数名称。
@Select("SELECT * FROM users WHERE name = #{name} AND age = #{age}")
User getUserByNameAndAge(@Param("name") String name, @Param("age") int age);
五、# 和 $:
- 含义:# 表示预编译,$ 表示字符串拼接。
用例:在 SQL 语句中使用,# 将参数以预编译的形式传递,$ 将参数直接拼接到 SQL 语句中。
@Select("SELECT * FROM users WHERE id = #{id}") // # 表示预编译
User getUserById(@Param("id") Long id);
@Select("SELECT * FROM users WHERE name = '${name}'") // $ 表示字符串拼接
User getUserByName(@Param("name") String name);
这些只是 MyBatis 中的一部分概念和功能,MyBatis 还提供了一些高级功能,如动态 SQL、缓存、拦截器等,以帮助开发者更灵活地操作数据库。
文章来源:https://blog.csdn.net/weixin_54546701/article/details/135353132
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!