发表于: 2018-01-24 23:28:24
1 554
今天完成的事情:
1.讲小课堂
大家好,我是IT修真院深圳分院第4期学员,一枚正直善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务10中,task1部分的知识点——mybatis常用标签和动态查询
一、背景介绍
在日常开发中,基本的静态的查询情况已经足够对付。但有些时候,我们想寻求一个能够根据参数自动调整SQL查询的方法。如,学校教导主任发现一个学生违反校纪校规,但是并没有当场抓住该学生,于是,他通过已经掌握的学生信息如【性别】,【年纪】,【身高】等信息来查询符合条件的学生。但是,这些信息的数量每次得到的数量都是不同的。换句话说,我们在设计系统时,无法确定传入参数的数量。也没有获得一个足以唯一确定这个对象的主键【如学号】。这便需要使用到动态查询功能。
二、知识剖析
<if>标签
说明: 若符合
常见场景:应用场景广泛,若条件不为null,添加SQL语句,在update中最为常见,也可以在insert中使用,避免插入null,导致默认值失效,当然其他类型例如select也可以使用
<where>标签
说明:避免所有条件都为空的时候出现“select * from user where ”这种会出错的情况,当然我们也可以在where后面加入“1=1”简单的解决,但是有更简单的方法,何乐而不为呢?
<set>标签
说明:自带<when>
常见场景:复用单条件SQL语句,例如查找一个用户,按“年龄查找”,或按“性别”查找等
<foreach>标签
说明:遍历传入的List、collection或map参数,依次使用集合中的元素执行SQL语句
三、常见问题
如果没有mybatis,又想要使用动态查询怎么办?
四、解决方案
使用葡萄藤的工具类库,SQLUtil,将MAP转化为SQL语句,再使用JDBC或JDBCTemplate查询
六、扩展思考
七、参考文献
1.CSDN:http://blog.csdn.net/ABCD898989/article/details/51218551
2.mybatis官方文档
八、更多讨论
无人提问
感谢大家观看
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~
我的邀请码:13299900,或者你可以直接点击此链接:http://www.jnshu.com/login/1/13299900
2.完善代码
经老大提醒,更改代码中不合理的地方
明天计划的事情:
再优化下代码,然后codereview
遇到的问题:
无
收获:
以上
进度:
项目预计demo时间:
2018.01.20
已确定延期
第一次延期:2018.01.25
第二次延期:2018.01.27
延期原因:前端后端进度皆有问题
再次延期风险:无
禅道:http://task.ptteng.com/zentao/project-task-516-unclosed.html
评论