Java神鬼莫测之MyBatis注解开发之动态SQL语句(六)
【摘要】
1.Mybatis注解开发之动态SQL语句
背景:使用mybatis的注解开发动态Sql会比较麻烦, 很不方便, 所以不太推荐使用,该文章以查询作为案例,演示动态sql语句. 注意:Mybatis的动态...
1.Mybatis注解开发之动态SQL语句
背景:使用mybatis的注解开发动态Sql会比较麻烦, 很不方便, 所以不太推荐使用,该文章以查询作为案例,演示动态sql语句.
注意:Mybatis的动态sql语句开发, 可以分为三种写法:
1.脚本动态sql语句
2.方法中定义sql
3.结构化sql
2.案例环境
2.1.实体类 User(提供了Get、Set、toString方法)
2.2.接口 IUserDao
2.3.需求
使用动态sql, 执行IUserDao接口内的findUserByCondition方法
如果username属性有值,则查询条件中加上username=值
如果sex属性有值,则查询条件也商家 sex=值
3.动态SQL实现
3.1.脚本动态SQL语句
把xml中的动态sql语句, 直接拷贝到注解中, 并使用script标签包括起来即可
3.2.方法中定义sql语句
3.2.1.需要定义一个专门用于生成动态sql语句的类. 并在类中定义一个专门给findUserByCondition()方法生成sql语句的方法.
3.2.2.可以在方法中利用SELECT( ), FROM( ), WHERE( )等动态生成sql语句.
3.2.3.把该类的该方法,配置到接口的findUserByCondition()方法上,表示该方法所使用的查询的sql语句,由UserDynaSqlProvider类的findUserByConditionSql方法提供
3.3.结构化sql语句
注意: 该方式和方式2一模一样, 只是在组装sql语句时的语法有少许区别.
3.3.1需要定义一个专门用于生成动态sql语句的类. 并在类中定义一个专门给findUserByCondition()方法生成sql语句的方法.
3.3.2.可以在方法中利用SELECT( ), FROM( ), WHERE( )等动态生成sql语句
3.3.3.把该类的该方法,配置到接口的findUserByCondition()方法上,表示该方法所使用的查询的sql语句,由UserDynaSqlProvider类的findUserByConditionSql方法提供
测试
如果测试代码如下:
则程序运行产生的sql语句是:
select * from user where (username = ?)
运行结果是:
如果测试代码如下:
则程序运行产生的sql语句是:
select * from user where (username = ? and sex = ?)
运行结果是:
文章来源: baidaguo.blog.csdn.net,作者:白大锅,版权归原作者所有,如需转载,请联系作者。
原文链接:baidaguo.blog.csdn.net/article/details/118931029
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)