四.Mybatis动态SQL
来源:互联网 发布:陈一发淘宝店地址 编辑:程序博客网 时间:2024/06/06 01:04
一.if choose
if:
pojo:jikeReader readerID,userID,money
mapping:
实例化pojo设置属性传入,返回pojo<select id="selectReaderMoney" resultType="jikeReader" parameterType="jikeReader"> select * from reader where 1=1 <if test="money!=null"> and money>#{money} </if></select>
test:
JiKeReader oneReader=new JiKeReader();oneReader.setMoney(200);List<JiKeReader> ap= session.selectList("selectReaderMoney",oneReader);for(JiKeReader temp:ap) { System.out.println("用户ID="+temp.getReaderID());}
choose:
mapping:<select id="selectJiKeUserChoose" resultType="JiKeUser" parameterType="JiKeUser"> select * from jikeuser where 1=1 <choose> <when test="userName!=null"> and userName like #{userName} </when> <when test="id!=0"> and id =#{id} </when> <otherwise> and password is not null </otherwise> </choose> </select>
test:
JiKeUser oneUser=new JiKeUser();//oneUser.setUserName("%j%");oneUser.setId(10);List<JiKeUser> ap=session.selectList("selectJiKeUserChoose",oneUser);
二.where,set,trim
where:智能去除下面的and
<select id="selectJiKeUserWhere" resultType="JiKeUser" parameterType="JiKeUser"> select * from jikeuser <where> <if test="userName!=null"> and userName like #{userName} </if> <if test="id!=null"> and id =#{id} </if> </where></select>
测试:老样子:selectList(id,pojo)
set:智能去除后面的,
<update id="updateJiKeUserSet" parameterType="JiKeUser"> update JiKeUser <set> <if test="userName != null">userName=#{userName},</if> <if test="password != null">password=#{password},</if> </set> where id=#{id}</update>测试老样子:selectList(id,pojo)
trim:最智能,有四个属性 prefix,suffix
,prefixOverrides, suffixOverrides
mapping:
<update id="updateUserTrim" parameterType="JiKeUser"> UPDATE JiKeUser <trim prefix="SET" suffixOverrides="," suffix="WHERE id = #{id}" > <if test="userName != null and userName != '' "> userName = #{userName}, </if> <if test="password != null and password != '' "> password=#{password}, </if> </trim></update>
另一个例子:
select * from jikeuser <trim prefix="where" prefixOverrides="and|or"> <if test="userName!=null"> and userName like #{userName} </if> <if test="id!=null"> and id =#{id} </if> </trim>
三.foreach
例子1:
mapping:
<select id="selectJiKeUserForeach" resultType="JiKeUser" parameterType="list"> select * from jikeuser <where> id in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </where></select>
测试:
ArrayList<Integer> ides=new ArrayList();ides.add(2);ides.add(8);ides.add(9);List<JiKeUser> ap=session.selectList("selectJiKeUserForeach", ides);
例子2:
key为循环序号
<insert id="insertJiKeUserForeach"> insert into jikeUser (userName, password) values <foreach item="item" index="key" collection="list" open="" separator="," close="">(#{key}, #{item.password}) </foreach> </insert>
测试:
ArrayList<JiKeUser> jkuList=new ArrayList();JiKeUser one=new JiKeUser("jt1","8866");JiKeUser two=new JiKeUser("jt2","8866");jkuList.add(one);jkuList.add(two);session.insert("insertJiKeUserForeach",jkuList);session.commit();
0 0
- 四.Mybatis动态SQL
- MyBatis动态sql(四)
- mybatis系列四:动态SQL
- mybatis系列四:mybatis 动态sql语句
- MyBatis学习 之 四、动态SQL语句
- MyBatis学习 之四、动态SQL语句
- MyBatis学习(四)- 动态SQL
- MyBatis学习(四)- 动态SQL
- MyBatis入门(四)---动态SQL
- MyBatis学习 之 四、动态SQL语句
- mybatis系列-动态 SQL(四)
- Mybatis学习笔记之四:动态SQL
- mybatis学习(四)--动态SQL
- mybatis学习(四)动态SQL语句
- 一双跑鞋的mybatis(四)---动态sql语句
- mybatis学习四之输入输出映射以及动态sql
- MyBatis学习笔记(四)--动态SQL的使用
- mybatis动态SQL语句
- tcp三次握手都做了什么?!
- word未响应解决方案汇总
- 图解Linux命令之--cksum命令
- 动态规划7:最优编辑练习题
- linux驱动大至思路
- 四.Mybatis动态SQL
- CCF NOI1098 森林
- 51nod 1459 迷宫游戏(最短路)
- WINDOWS 内存管理
- Android自定义dialog从屏幕底部弹出并且充满屏幕宽度
- 1432: [ZJOI2009]Function 找规律
- magento1.9创建新模块
- poj 1287(最小生成树prime算法)
- 用认真的态度面对人生用心的思考