首页
统计
4K壁纸
留言
Search
1
自动采集头像+壁纸+流量主小程序
851 阅读
2
【腾讯云】低价服务器活动和新用户活动
494 阅读
3
Spring Di依赖注入环境
377 阅读
4
springboot
323 阅读
5
Spring MVC 结构体系
299 阅读
技术分享
学习笔记
jsp
Maven
Mybatis
Spring
Hibernate
系统源码
网站源码
APP源码
微信程序
小程序
登录
/
注册
Search
标签搜索
学习笔记
Hibernate
小程序
Mybatis
源码
教程
笔记
Ajax
微信
活动
福利
MyEclipse 10
笔记fen'x
壁纸小程序
微信程序
HQL
笔记分享
Mybatis-Plus
小新
累计撰写
44
篇文章
累计收到
42
条评论
首页
栏目
技术分享
学习笔记
jsp
Maven
Mybatis
Spring
Hibernate
系统源码
网站源码
APP源码
微信程序
小程序
页面
统计
4K壁纸
留言
搜索到
1
篇与
笔记fen'x
的结果
动态SQL
基于OGNL表达式完成多条件查询等逻辑实现用于实现动态SQL的元素主要有iftrimwheresetchoose(when.otherwise)foreach /** * 动态sql查询 * @return */ List<User> selBylike(User user);<select id="selBylike" resultType="User"> select * from smbms_user where 1=1 <if test="userRole!=null and userRole!=0"> and userRole = #{userRole} </if> <if test="userName != null"> and userName like concat('%',#{userName},'%'); </if> </select>@Test public void selBylike(){ SqlSession openSession = MybatisUtil.openSession(); UserMapper mapper = openSession.getMapper(UserMapper.class); User user = new User(); user.setUserRole(3); user.setUserName("张"); List<User> selBylike = mapper.selBylike(user); for (User user2 : selBylike) { System.out.println(user2); } }where简化SQL语句中where条件判断智能处理and和or<select id="selBylike" resultType="User"> select * from smbms_user <!-- where 1=1 --> <where> <if test="userRole!=null and userRole!=0"> and userRole = #{userRole} </if> <if test="userName != null"> and userName like concat('%',#{userName},'%'); </if> </where> </select>set 去逗号演示代码:<update id="upd"> update smbms_user <set> <if test="userCode!=null and userCode!=0"> userCode = #{userCode}, </if> <if test="userName!=null"> userName = #{userName}, </if> <if test="userPassword!=null"> userPassword = #{userPassword}, </if> <if test="userRole!=null and userCode!=0"> userRole = #{userRole}, </if> </set> where id = #{id} </update>trim属性 Prefix (加前缀)suffix (加后缀)prefixOverrides (去前缀)suffixOverrides (去后缀)更灵活地去除多余关键字替换where和set<update id="upd"> update smbms_user <trim prefix="set" suffixOverrides="," suffix="where id=#{id}"> <if test="userCode!=null and userCode!=0"> userCode = #{userCode}, </if> <if test="userName!=null"> userName = #{userName}, </if> <if test="userPassword!=null"> userPassword = #{userPassword}, </if> <if test="userRole!=null and userCode!=0"> userRole = #{userRole}, </if> </trim> </update><select id="selBylike" resultType="User"> select * from smbms_user <trim prefix="where" prefixOverrides="and|or"> <if test="userRole!=null and userRole!=0"> and userRole = #{userRole} </if> <if test="userName != null"> and userName like concat('%',#{userName},'%'); </if> </trim> </select>foreach迭代一个集合,通常用于in条件属性itemindexcollection:必须指定listarraymap-keyopenseparatorclose/** * 使用集合查询 * @return */ List<User> selByidList(@Param("idlist")List<Integer> idlist);<select id="selByidList" resultType="User"> select * from smbms_user <foreach collection="idlist" item="idOne" open="where id in(" close=")" separator=","> #{idOne} </foreach> </select>分页查询/** * 分页查询 * @param start * @param pageSize * @return */ List<User> selBypage(@Param("start")int start,@Param("pageSize")int pageSize);<select id="selBypage" resultType="USer"> select * from smbms_user limit #{start},#{pageSize} </select>@Test //测试类 public void selBypage(){ SqlSession session = MybatisUtil.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); List<User> selectList = mapper.selBypage((1-1)*5,5); for (User userss : selectList) { System.out.println(userss); } }
2021年12月27日
38 阅读
0 评论
0 点赞