前言:注解的方式在某些查询的时候还是比较方便的

mybatis注解配置

mapUnderscoreToCamelCase 配置@Select 注解@Insert 注解@Delete 注解 和 @Update 注解@Provider 注解

mapUnderscoreToCamelCase 配置

别名设置,mapUnderscoreToCamelCase 配置 配置可以将 带下划线 sql 字段转化为带驼峰结构的 java 属性设置

具体配置如下

//在mybatis-plus中

mybatis-plus:

configuration:

map-underscore-to-camel-case: true

//在mybatis中:

mybatis:

configuration:

map-underscore-to-camel-case: true

此设置相当于 xml 中的 result sql 字段于 java 实体类属性的关系映射

也可以在注解中使用 result 进行关系映射,如果使用result 则放在xml 使用,注解可以使用一些短sql,简单查询,删除,短sql更新等操作不适合长sql操作

@Select 注解

@Select ({ ” select id, role name roleName, enabled,

create_by createBy,

create time createTime ”

” from sys_role ”,

” where id= #{id } ” })

SysRole selectByid(Long id) ;

也可以写成下面这种形式。

@Select ({ ” select id, role name roleName , enabled,

create by createBy,

create time createTime

from sys_role

where id = #{id } ” })

SysRole selectByid(Long id) ;

如果没有配置 别名,使用result

@Results({

@Result(property = ” i d ”, column = ” id”, id = true) ,

@Result(property = ” roleName ”, column =”role name ”),

@Result(property =”enabled”, column = ” enabled”),

@Result(property = ” createBy”, column = ” create_by”),

@Result(property = ” createTime”, column = " create_time ”)

} )

@Select (”s elect id,role name , enabled, create by , create time

from sys_role where id = #{id )”)

SysRole selectByid2(Long id);

@Insert 注解

不需要返回主键

@Insert ({”insert into sys role (id, role name, enabled, create by, create time )”,

” values(#{id}, #{roleName}, #{enabled}, #{createBy } ,”,

”#{ createTime , jdbcType=TIMESTAMP })”})

int insert(SysRole sysRole);

返回自增主键

@Insert ({”insert into sys_role (role_name, enabled, create_by, create_ time )”,

” values(#{roleName}, #{enabled}, #{createBy },”,

”#{ createTime, jdbcType=TIMESTAMP })”})

@Options(useGeneratedKeys =true, keyProperty =”id”)

int insert2(SysRole sysRole);

和上面的 insert 方法相比, insert2 方法中的 SQL 中少了 id 列,注解多了 @Options ,我们在这个注解中设置了 useGeneratedKeys keyProperty 属性,用法和 XML 相同, 当需要配置多个列时,这个注解也提供了 ke yColumn 属性,可以像 ML 那样 配置使用。

@Delete 注解 和 @Update 注解

@Update {{ ” update sys role ”,

})

”set role name = #{roleName },”,

” enabled = #{enabled },”,

” create by = #{createBy },”,

” create time = #{createTime, jdbcType=TIMESTAMP }”,

” where id = #{id }”

int updateByid{SysRole sysRole);

@Delete {” delete from sys role where id = #{id }”)

int deleteByid{Long id);

@Provider 注解

除了上面 种注解可以使用简单的 SQL 外, MyBatis 还提供了 Provider 注解,分别 @SelectProvider 、@ InsertProvider 、@ Update Provider 和@ DeleteProvider 们同样可以实现查询、插入、更新、删除操作。 下面通过@ SelectProvider 用法来了解 Provider 注解方式的基本用法

public class PrivilegeProv der {

public String selectByid(final Long id) {

return new SQL{) {

SELECT (”id, privilege name, privilege url”);

FROM (”sys privilege”);

WHERE (” id= #{id }”);

} . toString () ;

}

public String selectByid(final Long id) {

return ” select id, privilege name, privilege url ”+

” from sys_privilege where id = #{id }”;

}

本文大量引用这本书的实例,有问题可以阅读原文

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: