关于拼接SQL语句sqlMap的使用方法
来源:互联网 发布:现在开淘宝卖什么好卖 编辑:程序博客网 时间:2024/05/17 21:06
1.为什么使用?
主要还是为了代码中获取到值,然后带入SQL语句中拼接查询
2.怎么使用?
1)bean继承了BaseEntity类,该类中有
/** * 自定义SQL(SQL标识,SQL内容) */ protected Map<String, String> sqlMap; @JsonIgnore @XmlTransient public Map<String, String> getSqlMap() { if (sqlMap == null){ sqlMap = Maps.newHashMap(); } return sqlMap; } public void setSqlMap(Map<String, String> sqlMap) { this.sqlMap = sqlMap; }
2)XML中如何写?
<select id="findList" resultType="ZlfbBean"> SELECT * FROM ( SELECT <include refid="ZlfbBeanColumns"/> FROM ZL_HCZZ i <include refid="ZlfbBeanJoins"/> <where> AND i.del_flag = #{DEL_FLAG_NORMAL} ${sqlMap.dsf} //此处加入service中的限制条件 <if test="zlbh != null and zlbh != ''"> AND i.ZLBH = #{zlbh} </if> <if test="createBy != null and createBy.id != null and createBy.id != ''"> AND i.CREATE_BY = #{createBy.id} </if> <if test="office != null and office.id != null and office.id != ''"> AND i.OFFICE_ID = #{office.id} </if> </where> ORDER BY i.CREATE_DATE DESC,i.UPDATE_DATE DESC ) t <where> AND t.del_flag = #{DEL_FLAG_NORMAL} <if test="beginInDate != null and beginInDate != ''"> AND t.CREATE_DATE <![CDATA[ >= #{beginInDate} ]]> </if> <if test="endInDate != null and endInDate != ''"> AND t.CREATE_DATE <![CDATA[ <= #{endInDate} ]]> </if> </where> </select>
3)service中:
public Page<ZlfbBean> findzlfb(Page<ZlfbBean> page,ZlfbBean bean){ // 生成数据权限过滤条件(dsf为dataScopeFilter的简写,在xml中使用 ${sqlMap.dsf}调用权限SQL) User user = UserUtils.getUser(); String dsf = dataScopeFilter( user, "l", "k");//返回的是如AND (k.id='user.getId()') if((bean.getCreateBy()==null || bean.getCreateBy().getId().equals("")) && (bean.getOffice()==null || bean.getOffice().getId().equals(""))){ dsf = dsf+" OR i.zlbh IN( " +" SELECT DISTINCT t1.zlbh FROM ZL_HCZZ t1 join ZL_HCZZSP t2 on t1.zlbh=t2.zlbh where t2.CREATE_BY = "+user.getId() +" ) " +" OR i.zlbh IN( " +" SELECT DISTINCT t1.zlbh FROM ZL_HCZZ t1 join ZL_HCZZQS t2 on t1.zlbh=t2.zlbh where t2.CREATE_BY = "+user.getId()+" OR ((SELECT COUNT(1) FROM SYS_USER WHERE id="+user.getId()+" and qsqx='01' and office_id='"+user.getOffice().getId()+"') > 0 ) AND t2.QS_DW = '"+user.getOffice().getId()+"' " +" ) " +" OR i.zlbh IN( " +" SELECT DISTINCT t1.zlbh FROM ZL_HCZZ t1 join ZL_HCZZFK t2 on t1.zlbh=t2.zlbh where t2.CREATE_BY = "+user.getId() +" ) "; } bean.getSqlMap().put("dsf", dsf);给sqlmap集合中添加值,即添加一个dsf字符串的值为dsf // 设置分页参数 bean.setPage(page); // 执行分页查询 page.setList(zlfbDao.findList(bean)); return page; }
阅读全文
1 0
- 关于拼接SQL语句sqlMap的使用方法
- 关于sqlmap执行sql语句
- 关于sqlmap执行sql语句 二,关于sqlmap执行语句的前后台相关参数的传递
- sql 语句的拼接
- SQL语句中关于字符串的拼接问题
- sqlmap的简要使用方法
- 常见的Sqlmap语句
- ibatis的sqlmap映射文件之动态sql语句
- SQL语句中和字符串的拼接问题
- 采用拼接SQL语句的坏处
- ADO.NET 中 SQL 语句的拼接
- 数据库增删改查未拼接的 sql语句
- sql语句的拼接和写法
- mybatis批量删除的sql语句拼接
- java注解:完成sql语句的拼接
- 关于java多条件查询SQL语句拼接的小技巧
- 技巧-----sql语句拼接
- 拼接sql语句
- CardView兼容问题
- tomcat启动报错org.apache.catalina.core.StandardContext listenerStart
- linux下用语言连接sqlite数据库
- 欢迎使用CSDN-markdown编辑器
- 使用Thinkphp框架开发移动端接口(1)
- 关于拼接SQL语句sqlMap的使用方法
- iOS第三方库-CocoaLumberjack-DDLog 使用
- 自学h5 来看看项目常见问题汇总及解决方案
- 企业支付宝账号开发接口教程--JAVA-UTF-8
- Android 微信刷新&自带下拉刷新SwipeRefreshLayout(二)
- java中IO流详解
- 操作系统处理机管理功能(2)之进程通信及调度
- linux之bound网络配置
- 笔记