mybatis入门基础--纯sql和自定义的动态sql
来源:互联网 发布:kik软件 编辑:程序博客网 时间:2024/06/02 01:58
前言: 在使用mybatis的过程中,总是要去注意 类似 > < 一类的特殊字符需要进行转义,十分别扭而且难记,于是笔者就自己写了一些比较笨拙的方法来实现,
1.首先就是 动态sql直接使用:
这里我使用java来动态的拼接 ,比如一个动态查询场景下,查询参数是不一定的,所以每次的查询可能都不一样,所以
我会将 mapper.xml中定义一个 字符串,
<select id="DynamicQuery"
parameterType="java.util.HashMap" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
from
tb_user a
where 1=1
${sqlStr}
</select>
而serviceImpl层;
public List<TbUser> DynamicQuery(GetUserAndOrgsInfo item){
Map map=new HashMap();
StringBuffer sbStr=new StringBuffer();
sbStr.append( " and 1=1 " );
if(!Strings.isNullOrEmpty(item.name)){
sbStr.append(" and a.user_name= '"+ item.name+"' ");
}
if(!Strings.isNullOrEmpty(item.orgsStr)){
sbStr.append(" and a.user_orgsid= '"+ item.orgsStr+"' ");
}
map.put("sqlStr",sbStr);
return tbUserMapper.DynamicQuery(map);
}
**********************************************************************************
2 mybatis使用纯sql语句去实现复杂的多表查询,参考上面的代码
新建一个实体类 SqlAdapter: 只需要一个属性, private String sql
public class SqlAdapter { String sql; public SqlAdapter(){} public SqlAdapter(String sql) {this.sql = sql; } public String getSql() { return sql; } public void setSql(String sql) { this.sql = sql; }}
serviceImpl层:自己去写纯sql,
public List<Map> getAllDynamic(GetUserAndOrgsInfo item){ StringBuilder sb=new StringBuilder(); sb.append(" select * from tb_user a where a.id>11 order by ** "); SqlAdapter sqlstr=new SqlAdapter(sb.toString()); return tbUserMapper.getAllDynamic(sqlstr); }mapper.xml层:
<select id="getAllDynamic" parameterType="com.XX.entity.SqlAdapter"
resultType="java.util.HashMap">
${sql}
</select>
************************************************************************
- mybatis入门基础--纯sql和自定义的动态sql
- mybatis入门基础(五)----动态SQL
- mybatis入门基础(五)----动态SQL
- mybatis入门基础(五)----动态SQL
- mybatis入门基础(五)----动态SQL
- mybatis入门基础(五)----动态SQL
- mybatis入门基础(五)----动态SQL
- mybatis入门基础(五)----动态SQL
- mybatis入门基础(五)----动态SQL
- mybatis入门-动态sql
- mybatis动态执行自定义sql
- MyBatis的动态SQL
- MyBatis的动态SQL
- MyBatis的动态SQL
- Mybatis的动态Sql
- MyBatis的动态SQL
- Mybatis的动态SQL
- MyBatis的动态SQL
- drools入门介绍
- 深度学习硬件这件事,GPU、CPU、FPGA到底谁最合适?
- android SharedPreference封装为工具类
- Python作业
- Qt 之 QVector
- mybatis入门基础--纯sql和自定义的动态sql
- [Java Web]stmp发送带附件邮件(附SSL版)
- 堆排序
- kotlin 官方学习教程之基础语法
- 循环获取子类递归
- 谈谈深度学习中的 Batch_Size
- SD--如何在输出控制中增加自定义字段
- 如何通过jsoup获得图片地址 demo
- 动态范围规划(调整)Dynamic Range Control的一些心得(二)