摘要:附转义字符第二种方法因为这个是格式的,所以不允许出现类似这样的字符,但是都可以使用符号进行说明,将此类符号不进行解析你的可以写成这个文件示例代码
一 多条件查询专题 1.通过恒等式完成动态SQL语句动态SQL语句是核心之一,这里我们通过几个示例来演示
涉及到if标签
user_id,user_name,sex,money,birthday ${alias}.user_id,${alias}.user_name,${alias}.sex,${alias}.money,${alias}.birthday
映射文件
Java测试代码
@Test public void IF标签01(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Mapquery = new HashMap<>(); query.put("name", "悟"); query.put("sex", "男"); List userList = sqlSession.selectList(User.class.getName()+".if01", query); System.out.println(userList); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }
图解说明
如果发现标签內有内容,那么会在内容的最前面加入关键字 where
如果有内容,会检查内容的最前面是否含有 AND空格 或者 OR空格 ,自动将其抹掉
映射文件
Java测试代码
@Test public void IF标签02(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Mapquery = new HashMap<>(); query.put("name", "悟"); query.put("sex", "男"); List userList = sqlSession.selectList(User.class.getName()+".if02", query); System.out.println(userList); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }
图解说明
3.trim标签和if标签映射文件
Java测试代码
@Test public void trim标签(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Mapquery = new HashMap<>(); query.put("name", "悟"); query.put("sex", "男"); List userList = sqlSession.selectList(User.class.getName()+".if03", query); System.out.println(userList); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }
图解说明
当你发现有内容的时候,在内容的最前面加入 set
当你发现有内容的时候,检查内容的最后面是否有逗号"," 如果将其抹掉
映射文件
UPDATE oa_user WHERE user_id=#{user_id} user_name=#{user_name}, sex=#{sex}, money=#{money}, birthday=#{birthday},
Java测试代码
@Test public void 更新操作_变更数据库(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); //数据 User user = new User(); user.setUser_id(3); user.setUser_name("天蓬元帅"); //日期的转换 String date = "1998-09-09"; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); user.setBirthday(df.parse(date)); int row =sqlSession.update(User.class.getName()+".update01", user); System.out.println(row); //事务的提交 sqlSession.commit(); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }
图解说明
映射文件
UPDATE oa_user WHERE user_id=#{user_id} user_name=#{user_name}, sex=#{sex}, money=#{money}, birthday=#{birthday},
Java测试代码
@Test public void 更新操作_TRIM标签_变更数据库(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); //数据 User user = new User(); user.setUser_id(3); user.setUser_name("天蓬元帅123"); //日期的转换 String date = "1998-10-09"; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); user.setBirthday(df.parse(date)); int row =sqlSession.update(User.class.getName()+".update02", user); System.out.println(row); //事务的提交 sqlSession.commit(); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }三 choose 标签简单使用
映射文件
Java测试代码
@Test public void choose标签(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Map四 小于号问题query = new HashMap<>(); query.put("sex", "女123213"); List userList = sqlSession.selectList(User.class.getName()+".choose01", query); System.out.println(userList); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }
映射文件
Java测试代码
@Test public void 小于号的解决问题(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); ListuserList = sqlSession.selectList(User.class.getName()+".less01", 1.0*800); System.out.println(userList); userList = sqlSession.selectList(User.class.getName()+".less02", 1.0*600); System.out.println(userList); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }
图解说明
五 动态添加语句请参考附录1说明
映射文件
INSERT INTO oa_user user_name, sex, money, birthday, #{user_name}, #{sex}, #{money}, #{birthday},
Java测试代码
@Test public void 动态的添加语句(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); //数据 User user = new User(); user.setUser_name("刘备12333333"); //日期的转换 String date = "1998-10-09"; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); user.setBirthday(df.parse(date)); user.setMoney(1111.11); int row =sqlSession.insert(User.class.getName()+".add01", user); System.out.println(row); //事务的提交 sqlSession.commit(); System.out.println(user); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }六 foreach标签 1.数组方式
映射方式
DELETE FROM oa_user WHERE user_id in #{shxt}
Java测试代码
@Test public void 传递数组删除规则(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); int row = sqlSession.delete(User.class.getName()+".delete01", new int[]{5,6}); //事务的提交 sqlSession.commit(); System.out.println(row); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }2.List方式
映射文件
DELETE FROM oa_user WHERE user_id in #{shxt}
Java测试代码
@Test public void 传递集合删除规则(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); List3.Map方式tempList = new ArrayList<>(); tempList.add(8); tempList.add(9); int row = sqlSession.delete(User.class.getName()+".delete02", tempList); //事务的提交 sqlSession.commit(); System.out.println(row); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }
映射方式
DELETE FROM oa_user WHERE user_id in #{shxt}
Java测试代码
@Test public void 传递Map删除规则(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); ListtempList = new ArrayList<>(); tempList.add(7); tempList.add(10); Map map = new HashMap (); map.put("id_array", tempList); int row = sqlSession.delete(User.class.getName()+".delete03", map); //事务的提交 sqlSession.commit(); System.out.println(row); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }
图解方式
映射文件
附录1 : MyBatis在xml文件中处理大于号小于号的方法 第一种方法:INSERT INTO oa_user VALUES (#{user.user_name},#{user.sex},#{user.money})
用了转义字符把>和<替换掉,然后就没有问题了。
SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE
附:XML转义字符
第二种方法因为这个是xml格式的,所以不允许出现类似“>”这样的字符,但是都可以使用符号进行说明,将此类符号不进行解析
你的可以写成这个:
mapper文件示例代码
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/70347.html
摘要:并且如果使用那么必须要指明值使用简单的数据类型不好使使用接口代理模式的注解也可以 属于MyBatis的核心之一,这里面的坑比较多,大家多多看看吧 一 模糊查询的三种方式介绍 我会使用resultMap处理结果集数据 1.死数据的模糊查询 映射文件 SELECT * FROM...
摘要:回顾上节课我们完成了的环境搭建核心配置文件映射文件的执行过程如何执行定制的语句我们测试的是死的数据那么下面我们使用容器传递动态的数据添加操作传递数据专题通过传递数据映射文件代码传递参数数据的类型或者提供额内置类型映射中的获取对应的值 回顾: 上节课我们完成了MyBatis的环境搭建核心配置文件映射文件API的执行过程如何执行定制的SQL语句 我们测试的是死的数据,那么下面我们使用容器传...
摘要:说在前面的话命名空间暂时约定持久化类实体的类名的全路径一简单查询结果集处理查询结果集处理为类型字段作为中的值映射文件命名空间唯一的不能重复结果集处理后变成类型当你传递的是一个简单的数据类型的形参的时候那么你的值 说在前面的话 : 命名空间暂时约定-持久化类(实体Bean)的类名的全路径 com.shxt.model.Skill 一 简单查询结果集处理 1.查询结果集处理为Map类型 ...
摘要:文件知识点修饰类不能被基础修饰方法不能被重写修改变量常量不允许进行实例化静态代码块只是加载一次加载核心配置文件失败图解说明加载属性文件新建的根目录下修改核心配置文件加载属性文件配置数据库的环境事务管理器保证数据的完整性 MyBatisUtils.java 文件 /** * 知识点: * final 修饰类 : 不能被基础 * 修饰方法 : 不能被重写 * 修改变量 : 常量 ...
阅读 812·2021-09-22 15:18
阅读 1164·2021-09-09 09:33
阅读 2746·2019-08-30 10:56
阅读 1170·2019-08-29 16:30
阅读 1459·2019-08-29 13:02
阅读 1446·2019-08-26 13:55
阅读 1626·2019-08-26 13:41
阅读 1912·2019-08-26 11:56