MyBatis动态sql之trim、where、set标签
trim 元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是 prefix 和 suffix。
可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,对应的属性是 prefixOverrides 和 suffixOverrides。正因为 trim 元素有这样的功能,所以也可以非常简单地利用 trim 来代替 where 元素的功能。
在 myBatisDemo03 应用中测试 trim 元素,具体过程如下:
1)添加 SQL 映射语句在 com.mybatis 包的 UserMapper.xml 文件中添加如下 SQL 映射语句:
!--使用trim元素根据条件动态查询用户信息-- select id= selectUserByTrim resultType= com.po.MyUser parameterType= com.po.MyUser select * from user trim prefix= where prefixOverrides = and | or if test= uname!=null and uname!= and uname like concat( % ,#{uname}, % ) /if if test= usex!=null and usex!= and usex=#{usex} /if /trim /select2)添加数据操作接口方法
在 com.dao 包的 UserDao 接口中添加如下数据操作接口方法:
public List MyUser selectUserByTrim(MyUser user);
3)调用数据操作接口方法在 com.controller 包的 UserController 类中添加如下程序调用数据操作接口方法。
// 使用trim元素查询用户信息 MyUser trimmu=new MyUser(); trimmu.setUname ( 张 trimmu.setUsex( 男 List MyUser listByTrim=userDao.selectUserByTrim(trimmu); System.out.println ( trim 元素========================= for (MyUser myUser:listByTrim) { System.out.println(myUser); }4)测试动态 SQL 语句
运行 com.controller 包中的 TestController 主类,测试动态 SQL 语句。
where 元素where 元素的作用是会在写入 where 元素的地方输出一个 where 语句,另外一个好处是不需要考虑 where 元素里面的条件输出是什么样子的,MyBatis 将智能处理。如果所有的条件都不满足,那么 MyBatis 就会查出所有的记录,如果输出后是以 and 开头的,MyBatis 会把第一个 and 忽略。
当然如果是以 or 开头的,MyBatis 也会把它忽略;此外,在 where 元素中不需要考虑空格的问题,MyBatis 将智能加上。
在 myBatisDemo03 应用中测试 where 元素,具体过程如下:
1)添加 SQL 映射语句在 com.mybatis 包的 UserMapper.xml 文件中添加如下 SQL 映射语句:
!--使用where元素根据条件动态查询用户信息-- select id= selectUserByWhere resultType= com.po.MyUser parameterType= com.po.MyUser select * from user where if test= uname != null and uname ! = and uname like concat( % ,#{uname}, % ) /if if test= usex != null and usex != and usex=#{usex} /if /where /select2)添加数据操作接口方法
在 com.dao 包的 UserDao 接口中添加如下数据操作接口方法:
public List MyUser selectUserByWhere(MyUser user);
3)调用数据操作接口方法在 com.controller 包的 UserController 类中添加如下程序调用数据操作接口方法。
// 使用where元素查询用户信息 MyUser wheremu=new MyUser(); wheremu.setUname ( 张 wheremu.setUsex( 男 List MyUser listByWhere=userDao.selectUserByWhere(wheremu); System.out.println ( where 元素========================= for (MyUser myUser:listByWhere) { System.out.println(myUser); }4)测试动态 SQL 语句
运行 com.controller 包中的 TestController 主类,测试动态 SQL 语句。
set 元素在动态 update 语句中可以使用 set 元素动态更新列。在 myBatisDemo03 应用中测试 set 元素,具体过程如下:
1)添加 SQL 映射语句在 com.mybatis 包的 UserMapper.xml 文件中添加如下 SQL 映射语句:
!--使用set元素动态修改一个用户-- update id= updateUserBySet parameterType= com.po.MyUser update user set if test= uname!=null uname=#{uname} /if if test= usex!=null usex=#{usex} /if /set where uid=#{uid} /update2)添加数据操作接口方法
在 com.dao 包的 UserDao 接口中添加如下数据操作接口方法:
public int updateUserBySet(MyUser user);
3)调用数据操作接口方法在 com.controller 包的 UserController 类中添加如下程序调用数据操作接口方法。
// 使用set元素查询用户信息 MyUser setmu=new MyUser(); setmu.setUid (1); setmu.setUname( 张九 int setup=userDao.updateUserBySet(setmu); System.out.println ( set 元素修改了 +setup+ 条记录 System.out.println ( ========================= )4)测试动态 SQL 语句
运行 com.controller 包中的 TestController 主类,测试动态 SQL 语句。
22556.html
javaMybatis相关文章
- MyBatis——【第二章】mybatis动态sql(分页)
- MyBatis框架:第三章:传统方式mybatis的增,删,改,查实现
- MyBatis框架:第十章:mybatis缓存
- js中set和map的区别_list和set
- fundamental of Level set method
- Set A Light 3D Studio for Mac(3D摄影棚布光软件) v2.00.15汉化版
- ORA-00850: PGA_AGGREGATE_TARGET string cannot be set to more than MEMORY_MAX_TARGET string. ORACLE 报错 故障修复 远程处理
- ORA-01150: cannot prevent writes – file string has online backup set ORACLE 报错 故障修复 远程处理
- ORA-47346: Rule set string is used by one or more command rules. ORACLE 报错 故障修复 远程处理
- ORA-01125: cannot disable media recovery – file string has online backup set ORACLE 报错 故障修复 远程处理
- ORA-07200: slsid: oracle_sid not set. ORACLE 报错 故障修复 远程处理
- ORA-12736: Instant Client Light: unsupported server national character set string ORACLE 报错 故障修复 远程处理
- ORA-13913: The threshold cannot be set when SYSAUX is offline. ORACLE 报错 故障修复 远程处理
- MySQL Error number: MY-013486; Symbol: ER_GRP_RPL_SERVER_SET_TO_OFFLINE_MODE_DUE_TO_ERRORS; SQLSTATE: HY000 报错 故障修复 远程处理
- 实现MySQL函数SET实现灵活应用(mysql函数set)
- MyBatis set标签
- 深入浅出:Oracle数据库SET操作(oracle数据库set)
- Redis Set实现:高效、快速、可靠的数据存储方案(redisset实现)
- MyBatis与Oracle存储过程互通:简化开发,提高效率(mybatis调用oracle存储过程)
- MySQL 中如何使用 SET 进行赋值操作(mysql中set赋值)
- MySQL中SET用法详解(mysql中set 用法)
- 探究Redis的SET命令的功能与用法(查看redis命令set)
- Redis集群以Set的方式扩展(redis 集群 set)
- Redis集群高效使用Set命令(redis集群set命令)
- 从Redis中获取Set集合的简单方法(redis获取set集合)
- Sql学习第一天——SQL练习题(建表/sql语句)