小编给大家分享一下Mybatis中注解怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为依兰企业提供专业的网站制作、成都网站设计,依兰网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
Mybatis 除了 XML 配置写法,还可以使用注解写法。
首先需要引入 Mybatis 的依赖:
org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2 tk.mybatis mapper-spring-boot-starter 1.1.3
然后在接口上打上对应 @Mapper 注解
下面是常用的 Myatis 注解写法:
【1】新增对象( 非自增 ID )
插入的时候,数据库的值字段会自动匹配对象中同名称属性的值。
@Insert(value = { "INSERT INTO user (id, name, age, remark) VALUES (#{id}, #{name}, #{age}, #{remark})" }) public void addUser(User user);
【2】新增对象( 自增 ID )
如果数据库user表的 id 是自增长,我们可以加上 @Options 注解,那么该对象在插入后,id 属性会自动获取到主键。
@Options(useGeneratedKeys=true, keyProperty="id") 其中的 id 对应数据库表中的主键字段。
@Insert(value = { "INSERT INTO user (name, age, remark) VALUES (#{name}, #{age}, #{remark})" }) @Options(useGeneratedKeys=true, keyProperty="id") public void insertUser(User user);
【3】根据 ID 查询对象
@Param(value = "id") 其中的 id 对应 SQL 语句中的 #{id}
@Select("SELECT * FROM user WHERE id = #{id}") public User getUserById(@Param(value = "id") long id);
在查询对象的过程中,表字段会自动装箱给同名属性。当然,也可以写成绑定形式。
如下:@Result 注解中 property 是对象字段,column 是表字段。
@Select("SELECT * FROM user WHERE id = #{id}") @Results({ @Result(property="id", column="id"), @Result(property="name", column="name"), @Result(property="age", column="age"), @Result(property="remark", column="remark"), }) public User getUserById(@Param(value = "id") long id);
【4】大于 ( > ) 查询
在SQL 语句中,直接写作 > ,但在 xml 中,大于通常用转义 > 替代 ( xml 写法介绍详见 6.2)。
@Select("SELECT * FROM user WHERE age > #{age}") public ListgetUserList(@Param(value = "age") Integer age);
【5】小于 ( < ) 查询
在SQL 语句中,直接写作 < ,但在 xml 中,小于通常用转义 < 替代 ( xml 写法介绍详见 6.2)。
@Select("SELECT * FROM user WHERE age < #{age}") public ListgetUserList(@Param(value = "age") Integer age);
【6】IN 关键字查询
(6.1)带 IN 的子查询
@Select("SELECT * FROM user WHERE id IN (SELECT id FROM user WHERE name = #{name})") public ListgetUserList(@Param(value = "name") String name);
(6.2)带 IN 的集合查询
List 集合,Set集合,数组 都适用。
注意:@Select({""}) 这种写法为 xml 方式写法。所有 SQL 都在 这对标签之中,标签之外是一对大括号,"})
public List 在 Postgrelsql 中,如果逻辑SQL中的 IN 和 ANY 的语义相同,那么尽量用 ANY,这样会更加效率。如: 【7】LIKE 关键字查询 【8】时间查询 (8.1)Date 类型:直接传入进行比较 (8.2)String 类型:需要将其转化( 时间精度可以按自己需要裁取 ) MySQL :STR_TO_DATE('2008-08-08 08:08:08', '%Y-%m-%d %H:%i:%s') Postgrelsql :to_timestamp('2008-08-08 08:08:08','yyyy-MM-dd hh34:mi:ss') Oracle : to_date( '2008-08-08 08:08:08' , 'yyyy-MM-dd HH24:mi:ss' ) 如 Mysql 写法: 【9】高级查询( 动态SQL ) 注意:【>】是大于(>)的转义,【<】 是小于(<)的转义 【10】修改对象 【11】删除对象 以上是“Mybatis中注解怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!@Select("SELECT * FROM user WHERE id = ANY(#{ids}::integer[])")
public List
@Select("SELECT * FROM user WHERE name LIKE concat('%', #{name}, '%') ")
public List
@Select("SELECT * FROM user WHERE create_time > #{createTime}")
public List
@Select("SELECT * FROM user WHERE create_time > STR_TO_DATE(#{createTime}, '%Y-%m-%d %H:%i:%s')")
public List
@Select({""})
public List
@Update("UPDATE user SET name = #{name} WHERE id = #{id}")
public void update(@Param(value = "id") Long id, @Param(value = "name") String name);
@Delete("Delete FROM user WHERE id = #{id}")
public void delete(@Param(value = "id") Long id);
当前文章:Mybatis中注解怎么用
本文网址:http://cdkjz.cn/article/jiosop.html