博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis之动态sql
阅读量:4587 次
发布时间:2019-06-09

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

1.Mybatis动态sql是基于OGNL的表达式,可以使我们方便的在sql语句中实现某些逻辑。

2.使用if+where实现多条件查询

1〉dao层方法

//if动态sql查询    public List
findByIf(User user);

2〉xml配置文件的sql语句

3〉测试方法

//if动态sql查询    @Test    public  void  findByIf(){        SqlSession sqlSession = null;        User user = new User();        user.setUserName("测");        //]user.setUserPassword("");        try {            sqlSession = MyBatisUtil.createSqlSession();            List
list = sqlSession.getMapper(IUserDao.class).findByIf(user); sqlSession.commit(); for (User user1 : list) { System.out.println("user-------->"+user1.getUserCode()+"\t" +user1.getUserName()); } } catch (Exception e) { e.printStackTrace(); }finally { MyBatisUtil.closeSqlSession(sqlSession); } }

 3.choose,相当于java中的switch,通常与otherwise搭配

1〉dao层方法

//智能标签choose查询    public List
findByChoose(User user);

2〉xml配置文件中的sql语句

3〉测试方法

//choose动态sql查询    @Test    public  void  findByChoose(){        SqlSession sqlSession = null;        User user = new User();        user.setUserName("测");        //]user.setUserPassword("");        try {            sqlSession = MyBatisUtil.createSqlSession();            List
list = sqlSession.getMapper(IUserDao.class).findByChoose(user); sqlSession.commit(); for (User user1 : list) { System.out.println("user-------->"+user1.getUserCode()+"\t" +user1.getUserName()); } } catch (Exception e) { e.printStackTrace(); }finally { MyBatisUtil.closeSqlSession(sqlSession); } }

4. (1)foreach:迭代一个集合,通常用于in条件------------->传入数组  array

1〉dao层方法

//智能标签foreach查询 String [] array    public List
findByForeach(String [] depIds);

2〉xml配置文件的sql语句

3〉测试方法

//foreach动态sql查询   array    @Test    public  void  findByForeach(){        SqlSession sqlSession = null;        String [] depIds = {"1","2"};        try {            sqlSession = MyBatisUtil.createSqlSession();            List
list = sqlSession.getMapper(IUserDao.class).findByForeach(depIds); sqlSession.commit(); for (User user1 : list) { System.out.println("user-------->"+user1.getUserCode()+"\t" +user1.getUserName()); } } catch (Exception e) { e.printStackTrace(); }finally { MyBatisUtil.closeSqlSession(sqlSession); } }

2foreach传入集合----------->list

1〉dao方法

//智能标签foreach查询 List
list public List
findByForeachList(List
list);

2〉xml文件的配置

3〉测试方法

//foreach动态sql查询   list    @Test    public  void  findByForeachList(){        SqlSession sqlSession = null;       List
list = new ArrayList
(); list.add(1); try { sqlSession = MyBatisUtil.createSqlSession(); List
list1 = sqlSession.getMapper(IUserDao.class).findByForeachList(list); sqlSession.commit(); for (User user3 : list1) { System.out.println("user-------->"+user3.getUserCode()+"\t" +user3.getUserName()); } } catch (Exception e) { e.printStackTrace(); }finally { MyBatisUtil.closeSqlSession(sqlSession); } }

 

转载于:https://www.cnblogs.com/cn-930621/p/7577170.html

你可能感兴趣的文章
关于MSHTML
查看>>
秒杀多线程第四篇 一个经典的多线程同步问题
查看>>
简单工厂模式
查看>>
TFS 2010 让安装更简单,也让VSS成为历史
查看>>
百度地图API相关点
查看>>
Django 单表操作
查看>>
轻松自动化---selenium-webdriver(python) (三)
查看>>
会计期间
查看>>
LOJ2116 [HNOI2015] 开店 【点分治】
查看>>
硬盘分区表详解
查看>>
初识SOA
查看>>
使用DirectShow驱动摄像头
查看>>
Supervisor安装与配置(Linux/Unix进程管理工具)
查看>>
linux简易 局域网ip检查脚本
查看>>
SpringMVC中的文件上传
查看>>
Keras入门——(6)长短期记忆网络LSTM(三)
查看>>
电脑公司GHOST WIN7 装机旗舰版 2013 09
查看>>
ubuntu安装搜狗输入法
查看>>
sql查询优化相关
查看>>
减少选择让你节省时间
查看>>