mybatis的映射xml中动态设置orderby方式
目录
- mybatis 映射xml动态设置orderby
- mybatis动态传入order by参数的正确方式
mybatis 映射xml动态设置orderby
mybatis的dao xml中,根据参数值设置不同的order by字段。
dao java
List<DzRainDetail> queryDetail(@Param("masterId") int masterId, @Param("country") String country, @Param("sort") String sort);
第三个参数“sort”用于决定如何写这个order by。
dao XML
<select id="queryDetail" resultMap="DetailResultMap"> SELECT rd.id, st.address, rd.water, st.d_name FROM dzzhyj.dz_rain_detail rd INNER JOIN dzzhyj.DZ_RAIN_STATION st ON rd.station_code = st.code WHERE rd.master_id = #{masterId} AND st.country = #{country} <if test="sort.compareTo('d') == 0"> ORDER BY st.d_name ASC </if> <if test="sort.compareTo('water') == 0"> ORDER BY rd.water DESC </if> </select>
由于sort是字符串,String类型,我发现写成以下形式会报错:
<if test="sort == 'd'"> ORDER BY st.d_name ASC </if> <if test="sort == 'water'"> ORDER BY rd.water DESC </if>
系统会将sort认为是数值型,抛出异常说无法识别的值。
mybatis动态传入order by参数的正确方式
正确方式:
ORDER BY #{shop_id} 换成 ORDER BY ${shop_id}
备注: #{shop_id}是过滤列值, ¥{shop_id}是过滤列名
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
mybatis框架order by作为参数传入时失效的解决
mybatis order by作为参数传入失效 mxl中的语句如下 <select id="statToday" resultType="com.dahua.la.business.model.vo.StatSysResultVO"> select a, b, count(1) as total from table where a is not null and b is not null and operateTime >= #{startT
-
Mybatis order by 动态传参出现的问题及解决方法
问题由来 一个简单的需求,要求把和当前用户相关的数据置顶展示. 这里,我用了一个简单的用户表来复现这个需求. 很简单,查询语句后面加上:order by t.login_name='wulaoer' desc 就行了. 如下所示,吴老二就到顶了. 那Mybatis脚本怎么写呢? 就这么写
-
解决mybatis中order by排序无效问题
1.#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2.$将传入的数据直接显示生成在sql中.如:order by ${user_id},如果传入的值是111,那么解析成sql时的值为order by 111, 如果传入的值是id,则解析成的sql为order b
-
mybatis的映射xml中动态设置orderby方式
目录 mybatis 映射xml动态设置orderby mybatis动态传入order by参数的正确方式 mybatis 映射xml动态设置orderby mybatis的dao xml中,根据参数值设置不同的order by字段. dao java List<DzRainDetail> queryDetail(@Param("masterId") int masterId, @Param("country") String country, @Pa
-
mybatis的mapper.xml中resultMap标签的使用详解
1.前言 最近博主在做一个ssm框架的共享汽车管理系统,其中,数据库字段设计的有下划线方式,a_username,然后在写mapper.xml里面的sql语句的时候,一直出现查询语句查询的值为null的情况.或者是resultMap标签和驼峰规则不太明白的同学,可以看这里. 于是顺便梳理一下. 2.关于resultMap 2.1.什么是resultMap? 在mybatis中有一个resultMap标签,它是为了映射select查询出来结果的集合,其主要作用是将实体类中的字段与数据库表中的字段进
-
Django项目中动态设置静态文件路径的全过程
目录 前言 一.修改BASE_DIR: 二.修改模板文件路径(TEMPLATES中的DIRS的值): 三.修改国际化文件路径,由于LOCALE_PATHS默认不存在,需要自己在合适位置添加,如下图所示: 四.修改公共文件路径,如下图所示: 五.修改STATIC_ROOT文件路径,如下图所示: 六.修改多媒体路径,如下图所示: 总结 前言 Django项目需要在settings.py文件中设置各种文件的路径,例如:媒体文件(media)的路径.静态文件(static files)的路径.模板文件(
-
web.xml中如何设置配置文件的加载路径实例详解
web.xml中如何设置配置文件的加载路径实例详解 web应用程序通过Tomcat等容器启动时,会首先加载web.xml文件,通常我们工程中的各种配置文件,如日志.数据库.spring的文件等都在此时被加载,下面是两种常用的配置文件加载路径,即配置文件可以放到 SRC目录下或者可以放到WEB-INF根目录下 第一种在web.xml中这样配置: <context-param> <param-name >contextConfigLocation </param-name >
-
mybatis plus实体类中字段映射mysql中的json格式方式
目录 mybatis plus实体类中字段映射mysql中的json格式 1.实体类中有个属性是其他对象 2.那么取出时怎么进行映射呢,有分为两种情况 mybatis-plus 实体 json 处理 本文总共三个步骤 mybatis plus实体类中字段映射mysql中的json格式 1.实体类中有个属性是其他对象 或者是List:在数据库中存储时使用的是mysql的json格式,此时可以用mybatis plus的一个注解 @TableField(typeHandler = JacksonTy
-
Mybatis Plus使用XML编写动态sql的超简易方法
目录 使用xml编写动态sql 动态SQL语句的原理 入口类:MybatisSqlSessionFactoryBuilder MybatisMapperAnnotationBuilder动态构造 具体的AbstractMethod实例类,构造具体的方法SQL语句 小结一下 使用xml编写动态sql 在Resources文件夹下创建一个Mapper文件夹 比如我们需要在User表中使用增删改查,创建UserMapper.xml,对应MybatisPlus中的UserMapper接口 之后我们在ap
-
Mybatis配置映射文件中parameterType的用法讲解
目录 Mybatis配置映射文件parameterType用法 1.基本数据类型 2.复杂数据类型:包含java实体类,map Mybatis parameterType # $符号的注意事项 Mybatis配置映射文件parameterType用法 在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的输入参数类型即可.parameterType有基
-
Mybatis的mapper.xml中if标签test判断的用法说明
目录 mapper.xml中if标签test判断的用法 1. 字符串等于条件的两种写法 2. 非空条件的判断 3. 判断数组是否包含某个元素 mapper.xml <if test>书写时候的一些坑 1. 分页 2. 字符串形式的数据比较 mapper.xml中if标签test判断的用法 1. 字符串等于条件的两种写法 ① 将双引号和单引号的位置互换 <if test=' testString != null and testString == "A" '>
-
Spring DATA JPA 中findAll 进行OrderBy方式
目录 Spring DATA JPA 中findAll 进行OrderBy Spring Data JPA使用orderby的一个小坑 Spring DATA JPA 中findAll 进行OrderBy 需要在 repository 中 定义这样的方法 :findAllByOrderByUpdatedAtDesc() public List findAllByOrderByUpdatedAtDesc(); 重要:(中间要多加一个By) findAllByOrderByUpdatedAtDesc
-
vue中动态设置meta标签和title标签的方法
因为和原生的交互是需要h5这边来提供meta标签的来是来判断要不要显示分享按钮,所有就需要手动设置meta标签,标题和内容 //router内的设置 { path: '/teachers', name: 'TDetail', component: TDetail, meta: { title:"教师详情", content: 'disable' } }, { path: '/article', name: 'Article', component: Article, meta: { t
随机推荐
- Java获取此次请求URL以及服务器根路径的方法
- Java super关键字的使用方法详解
- Docker安装及基本使用方法详细介绍
- 永远不要因为工作不好而辞职
- Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
- 数据库中排序的对比及使用条件详解
- C#面向对象设计的七大原则
- mysql导入sql文件报错 ERROR 2013 2006 2002
- 用JS实现3D球状标签云示例代码
- You don’t have permission to access /index.php on.
- 删除wsttrs.exe等系列病毒的清除技巧
- 必须会的SQL语句(一) 创建数据库与删除数据库
- 详解vue-cli多页面工程实践第1/2页
- javascript加载xml 并解析各节点的值(实现方法)
- JavaScript关于提高网站性能的几点建议(一)
- C++链表倒序实现方法
- php的慢速日志引起的Mysql错误问题分析
- C#实现左截取和右截取字符串实例
- Android多渠道打包的方法步骤
- 深入理解Vue 单向数据流的原理