在mybatis中实现oracle分页和模糊查询
2018-04-02 20:13
696 查看
今天在工作中,遇到一个业务需求,就是需要在oracle里进行模糊查询并分页,SQL语句如下:
select m.label,m.building_loc_id,m.shape.minx x,m.shape.miny y from
(select rownum rnm ,t.* from table_test t where rownum <=10 and t.label like '%茂名%') m
where rnm>5
可以用rownum实现分页,但是由于rownum是建立在查询结果上的,所以必须有了查询结果,才能使用“>”号
所以需要用嵌套语句,而在mybatis中,则需要注意,不能直接用“<”“>”,要用转义符,也不能直接在引号中使用“#”
<select id="queryNameByKey" resultType="java.util.HashMap" parameterType="java.util.HashMap">
select m.label name,m.building_loc_id,m.shape.minx x,m.shape.miny y from
(select ROWNUM rum,t.* from table_test t where ROWNUM <= #{endIndex} and t.label like '%${queryKey}%' )m
where rum > #{beginIndex}
</select>
<select id="queryRecordsCount" resultType="Integer" parameterType="java.util.HashMap">
select count(*) from table_test t where t.label like '%${queryKey}%'
</select>
在引号中除了使用“$”,还可以使用concat,但是效率可能会降低,“$”效率较高,但是不安全,可以SQL注入
例如:t.lable like concat('%', concat(#{queryKey}, '%'))
select m.label,m.building_loc_id,m.shape.minx x,m.shape.miny y from
(select rownum rnm ,t.* from table_test t where rownum <=10 and t.label like '%茂名%') m
where rnm>5
可以用rownum实现分页,但是由于rownum是建立在查询结果上的,所以必须有了查询结果,才能使用“>”号
所以需要用嵌套语句,而在mybatis中,则需要注意,不能直接用“<”“>”,要用转义符,也不能直接在引号中使用“#”
<select id="queryNameByKey" resultType="java.util.HashMap" parameterType="java.util.HashMap">
select m.label name,m.building_loc_id,m.shape.minx x,m.shape.miny y from
(select ROWNUM rum,t.* from table_test t where ROWNUM <= #{endIndex} and t.label like '%${queryKey}%' )m
where rum > #{beginIndex}
</select>
<select id="queryRecordsCount" resultType="Integer" parameterType="java.util.HashMap">
select count(*) from table_test t where t.label like '%${queryKey}%'
</select>
在引号中除了使用“$”,还可以使用concat,但是效率可能会降低,“$”效率较高,但是不安全,可以SQL注入
例如:t.lable like concat('%', concat(#{queryKey}, '%'))
相关文章推荐
- mybatis+oracle实现分页查询--非常简单实用
- 使用Oracle实现的MyBatis分页查询效果
- Mybatis+Oracle实现按条件分页查询
- Maven+Mybatis+Spring+SpringMVC实现(oracle)分页查询(附源码)
- Mybatis+Oracle实现按条件分页查询
- 通过JDBC实现对Oracle,mysql数据库的增删改查,模糊查询,查询全部,根据ID查询,分页查询,统计查询,
- mybatis分页及模糊查询功能实现
- mybatis+oracle实现模糊查询
- SpringMVC+Mybatis+Oracle实现web分页
- iOS程序员利用分页和模糊查询技术实现一个App接口
- mybatis环境搭建、模糊查询、分页、增删改、事务处理
- ORACLE如何使用模糊查询(如何实现关键字搜索)
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- 结合JDBC和Oracle ROWNUM实现分页查询
- mybatis中oracle实现分页效果
- SpringMVC+Mybatis实现的Mysql分页数据查询的示例
- Oracle, SQL Server, My SQL如何实现数据分页查询语句
- 在用hibernate实现oracle 分页查询时报错ORA-00923: FROM keyword not found where expected
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- Mybatis中oracle、mysql、db2、sql server的like模糊查询