笔记要点-----内置参数_parameter&_databaseId      用处: 迅速切换数据库,执行一条多分支的sql语句即可;
1.定义接口

public interface EmployeeMapper_DynamicSQL {
public List<Employee> getEmpsTestInnerParameter(Employee employee);//测试内部参数
}

2.定义XML映射文件

    <!--两个内置参数;不只是方法传递过来的参数可以用来判断,取值
mubatis默认还有两个内置参数:
_parameter : 代表整个参数;
单个参数: _parameter就是这个参数
多个参数: 会被封装成一个map,map就是_parameter _databaseId : 如果配置了databaseIdProvider标签;
_databaseId就是代表了当前数据库的别名mysql !
-->
<!--public List<Employee> getEmpsTestInnerParameter(Employee employee);//测试内部参数-->
<select id="getEmpsTestInnerParameter" resultType="com.bean.Employee">
<if test="_databaseId=='mysql'">
select * from tbl_employee
<if test="_parameter!=null">
where last_name = #{_parameter.lastName}
</if>
</if>
<if test="_databaseId=='oracle'">
select * from tbl_employee
</if>

3.编写测试代码

public class test_tp48 {
public SqlSessionFactory getSqlSessionFactory() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
return new SqlSessionFactoryBuilder().build(inputStream);
} @Test
public void test11() throws Exception {
SqlSession openSession = getSqlSessionFactory().openSession();
try {
System.out.println("++++++++++---- tp48.测试动态sql_内置参数_parameter&_databaseId");
EmployeeMapper_DynamicSQL mapper = openSession.getMapper(EmployeeMapper_DynamicSQL.class);
List<Employee> list = mapper.getEmpsTestInnerParameter(null);
for(Employee e:list)
System.out.println(e); openSession.commit();
} finally {
openSession.close();
}
}
}

测试结果

++++++++++---- tp48.测试动态sql_内置参数_parameter&_databaseId
DEBUG 12-05 17:45:17,805 ==> Preparing: select * from tbl_employee (BaseJdbcLogger.java:145)
DEBUG 12-05 17:45:17,828 ==> Parameters: (BaseJdbcLogger.java:145)
DEBUG 12-05 17:45:17,845 <== Total: 8 (BaseJdbcLogger.java:145)
Employee{id=1, lastName='Jerry2333', email='233@...', gender='1', dept=null}
Employee{id=4, lastName='葫芦娃', email='葫芦娃@163.com', gender='0', dept=null}
Employee{id=5, lastName='葫芦娃e', email='qwq@qq.com', gender='1', dept=null}
Employee{id=6, lastName='null', email='xxx@qq.com', gender='1', dept=null}
Employee{id=7, lastName='tom', email='tom@163.com', gender='0', dept=null}
Employee{id=8, lastName='frak', email='frak@163.com', gender='1', dept=null}
Employee{id=9, lastName='smith', email='smith@qq.com', gender='1', dept=null}
Employee{id=10, lastName='aliex', email='aliex@qq.com', gender='0', dept=null}

最新文章

  1. Hive安装部署
  2. ueditor的配置和使用
  3. 在linux上配置并创建JavaFX项目
  4. linux 64位调用
  5. 速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句
  6. Android 源码获取-----在Windows环境下通过Git得到Android源代码
  7. [LintCode] Find the Weak Connected Component in the Directed Graph
  8. android gridview按钮边框和定制点击颜色
  9. WordPress插件制作教程(七): 插件函数之过滤器(Filter)函数
  10. eclipse启动tomcat 访问http://localhost:8080 报404错误
  11. 23个mysql查询语句
  12. 树形dp Codeforces Round #364 (Div. 1)B
  13. (中等) POJ 2991 Crane , 几何+线段树。
  14. LogBack学习
  15. WebApi实现自定义错误日志
  16. flask开发框架
  17. linux下ruby使用tcl/tk编程环境设置
  18. View体系第二篇:View滑动
  19. VM虚拟机打不开,没有反应,解决方法。
  20. 第四百节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装python3.5.1

热门文章

  1. jQuery插件——imgbox(点击图片查看大图)
  2. art-template 弹出编辑
  3. Hive行列转换
  4. torch.Tensor和numpy.ndarray
  5. 剑指offer44:翻转单词顺序列
  6. 15 飞机大战:pygame入门、python基础串连
  7. WUSTOJ 1336: Lucky Boy(Java)博弈
  8. binlogserver搭建
  9. js 中加减乘除 比较精确的算法,js本身有些运算会出错,这里给出较精确的算法
  10. Shiro授权及注解式开发