mybatis 动态sql 语句问题

qq_36505453 2016-12-02 05:39:06
Role role=new Role();
role.setUserId(UserUtils.getUser().getId());
List<Role> dataScope = systemService.getDataScope(role);
boolean flag1=false;
boolean flag2=false;
boolean flag3=false;
for (Role r : dataScope) {
if("1".equals(r.getDataScope())){
flag1=true;
}
if("2".equals(r.getDataScope())){
flag2=true;
}
if("3".equals(r.getDataScope())){
flag3=true;
}
}
if(flag1==false && flag2==false && flag3==true){
sql.append(" AND user_company_id='"+UserUtils.getUser().getOrgCode()+"'");
delivery.setUserCompanyId(UserUtils.getUser().getOrgCode());
}

这样的 语句 怎么写成
<if test=" flag1==false and flag2==false and flag3==true" >
AND user_company_id = #{userCompanyId}
</if>
...全文
239 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36505453 2016-12-05
  • 打赏
  • 举报
回复
可是我上面的sql 都是在.xml 中写的啊! 我只是想 把那一个拼写的sql 语句 变为 和我以前写的那个一样! 求代码的实现
鬼善 2016-12-05
  • 打赏
  • 举报
回复
可以通过tld文件写一个自定义函数,text判读应用你写的自定函数,应该就行了!
小崔爱读书 2016-12-05
  • 打赏
  • 举报
回复
动态sql的写法给你个文,自己看看。 http://www.jiisb.com/www/article/art_150.html
nyhyn 2016-12-03
  • 打赏
  • 举报
回复
建议你使用Java代码遍历List<Role> dataScope = systemService.getDataScope(role); 然后将三个布尔变量flag1==false && flag2==false && flag3==true条件成立为true,不成立为false 传入到mybatis中。 毕竟动态sql的功能没有Java那么强大
Inhibitory 2016-12-02
  • 打赏
  • 举报
回复
可以的,MyBatis 支持 if 等语法
qq_36505453 2016-12-02
  • 打赏
  • 举报
回复
上面是controller.java 文件中的 后面是dao.xml文件的

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧