博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis——MyBatis动态SQL,缓存(转)
阅读量:3942 次
发布时间:2019-05-24

本文共 1950 字,大约阅读时间需要 6 分钟。

MyBatis——MyBatis动态SQL,缓存

素材来源:西部开源秦疆老师,特此感谢

1.动态SQL

MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。

动态SQL就是指根据不同查询条件,生成不同的SQL语句

在 MyBatis 之前的版本中,有很多元素需要花时间了解。MyBatis 3 大大精简了元素种类,现在只需学习原来一半的元素便可。MyBatis 采用功能强大的基于 OGNL 的表达式来淘汰其它大部分元素。

if

参数test:里面的表达式如果为ture则执行,否则不执行

if(title != null)
AND title like #{title}

choose

有时我们不想应用到所有的条件语句,而只想从中择其一项。针对这种情况,MyBatis 提供了 choose 元素,它有点像 Java 中的 switch 语句。

trim[where,set]

...
update Author
username=#{username},
password=#{password},
email=#{email},
bio=#{bio}
where id=#{id}
...

foreach

代码测试

测试模糊查询

接口编写

//模糊查询,可以通过自定义条件查询List
getUserByLike(Map
map);

映射文件编写

测试类

@Testpublic void getUserByLike(){
SqlSession sqlSession = MyBatisUtils.getSqlSession(); UserDao mapper = sqlSession.getMapper(UserDao.class); Map
map = new HashMap
(); map.put("name","秦"); map.put("id",1); List
users = mapper.getUserByLike(map); for (User user : users) {
System.out.println(user); }}

注意点:太过复杂的逻辑不建议使用动态SQL,简单的话可以直接使用动态SQL实现;

2.缓存

如果开启缓存,

在mapper映射文件中,添加一个标签

如果要CRUD操作要查询结果需要缓存,可以使用usrCache;

转载地址:http://poiwi.baihongyu.com/

你可能感兴趣的文章
php引用(&)变量引用,函数引用,对…
查看>>
[转]yii执行流程(一 目录文…
查看>>
无需重启服务器让系统环境变量生效…
查看>>
配置CakePHP
查看>>
JQuery中$.ajax()方法参数详…
查看>>
JS 简易滚动条
查看>>
PHP __call()方法
查看>>
JS中的call()和apply()方法
查看>>
慎用PHP$_REQUEST数组
查看>>
详细解释PHP中header
查看>>
php中的迭代器Iterator的具体用法
查看>>
mysql操作技巧随笔--链表删除数据
查看>>
MySql在建立索引优化时需要…
查看>>
Mysql建表和索引使用规范
查看>>
mysql 队列 实现并发读
查看>>
MYSQL千万级数据量的优化方法积累
查看>>
经典分享MySQL的limit查询优化
查看>>
各大浏览器兼容性报告
查看>>
统计每个ip的访问量--linux--acces…
查看>>
常见hash算法的原理
查看>>