mybatis注解使用
来源:互联网 发布:mac如何装win10 编辑:程序博客网 时间:2024/06/05 17:07
这篇主要介绍在项目中,mybatis经常用到的注解,大部分在项目中都用过了。
mybatis映射sql语句问题。可以通过配置xml来添加映射,也可以在接口上面直接用注解来映射,如 @Select( “SQL语句”) 其他还有@Update,@Delete,@Insert等。
动态生成sql语句可以用@*Provider(),*为各种方法(select……)。
值得一提的是,以@SelectProvider(class,method)为例子,来动态配置sql语句,这个注解的意思是去class类中去找这个方法执行,并把参数作为map传入方法,返回类型为sql语句。
以一个模糊查找为例子。
接口
//用户组编码、用户组名称查找 @SelectProvider(type = QueryHelper.class,method = "getGroupInfo") List<TGroup> getByCN(@Param("groupCode") String loginName, @Param("groupName") String userName, @Param("start") int limit, @Param("num") int num);
方法
public class QueryHelper { //通过用户组编码、用户组名称模糊查询 public String getGroupInfo(Map<String, Object> parameters){ String groupCodeTag = null; String groupNameTag = null; Object groupCode = parameters.get("groupCode"); Object groupName = parameters.get("groupName"); String sql = "select GROUP_ID,GROUP_CODE,GROUP_NAME from T_GROUP where 1=1"; if (groupCode!=null) groupCode = groupCode.toString(); if(groupCodeTag!=null&&groupCodeTag.length()>0) sql +=" and GROUP_CODE LIKE CONCAT('%',#{groupCode},'%') "; if (groupName!=null) groupNameTag = groupName.toString(); if(groupNameTag!=null&&groupNameTag.length()>0) sql +=" and GROUP_NAME LIKE CONCAT('%',#{garoupName},'%') "; sql += " limit #{start},#{num}"; System.out.println(sql); return sql; }}
缓存优化
@CacheNamespace(size = 100)表示开启缓存,并且缓存100个对象,读写默认是开启的,缓存内省刷新时间为默认3600000毫秒,写策略是拷贝整个对象镜像到全新堆(如同CopyOnWriteList)因此线程安全。
@Options(useCache = true, flushCache = false, timeout = 10000) : 一些查询的选项开关,比如useCache = true表示本次查询结果被缓存以提高下次查询速度,flushCache = false表示下次查询时不刷新缓存,timeout = 10000表示查询结果缓存10000秒。 当是select操作的时候可以关闭flushCash,但是会影响到数据库数据的操作,要打开flushCash,避免数据不一致。
@Results(value = {
@Result(id = true, property = “id”, column = “RID”, javaType = String.class, jdbcType = JdbcType.VARCHAR),
@Result(property = “text”, column = “TTEXT”, javaType = String.class, jdbcType = JdbcType.VARCHAR) })
可以将返回的结果与实体类的属性进行映射,假如列名和属性一致时,会自动映射。column 为数据库的列名,property为实体类的属性,id为主键,javaType 为实体类的类型,jdbcType为数据库column的类型。
@Param(“id”) 指定传入参数的映射。
@Select("select * from T_GROUP where GROUP_ID = #{gID,jdbcType=INTEGER}") TGroup getById(@Param("gID") String groupId);
@ResultMap(value = “userMap”)
这个是把ResultMap配置在xml中,然后在同一个namespace下才能使用。
这里的注解是mybatis中常用的注解,以select的为例,其他的注解使用类似,可以类比。
- mybatis使用注解2
- mybatis使用注解2
- Mybatis使用 注解配置
- 使用注解开发 MyBatis
- Mybatis使用注解开发
- mybatis注解使用
- MyBatis使用注解进行开发
- 使用注解来配置MyBatis
- Mybatis 完全使用注解版实例
- Mybatis之使用注解开发CRUD
- mybatis 注解和xml的使用
- 使用注解方式实现mybatis一对多
- mybatis XXXMapper.java中使用@Param注解
- 【MyBatis学习18】使用注解配置Mapper
- 使用注解的方式玩转MyBatis
- MyBatis使用注解实现增删改查
- mybatis的@Param注解使用场景
- Mybatis之使用注解开发CRUD
- MYSQL中常用的字符串函数
- SDUT-2143
- 20171125-1126:java一些基础的学习,没啥说的
- OOP思想和范式编程
- 搭建slave ios平台爆出 org.sonarsource.scanner.api.internal.ScannerException: Unable to execute SonarQube
- mybatis注解使用
- 【MySql】Sql优化(三)——性能优化
- Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe5' in file
- 源代码寻找分享
- BZOJ3156: 防御准备
- 2017.11.30 刘明春第8天总结
- MyBatis Generator
- PersonalRank:一种基于图的推荐算法
- 从mongoDB数据库中读取tvsplst数据写到CSV文件里面