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
随机推荐
- jQuery 实时保存页面动态添加的数据的示例
- 谷歌地图打不开的解决办法
- PHP 之 写时复制介绍(Copy On Write)
- phpMyAdmin下载、安装和使用入门教程
- Yii视图CGridView列表用法实例分析
- 详解挂载运行的docker容器中如何挂载文件系统
- windows7下启动mysql服务出现服务名无效的原因及解决方法
- python如何查看系统网络流量的信息
- Go语言服务器开发之客户端向服务器发送数据并接收返回数据的方法
- Android ListView出现异常解决办法
- MySQL日志设置及查看方法
- jquery ajax 同步异步的执行示例代码
- jquery Mobile入门—外部链接切换示例代码
- jqGrid翻页时数据选中丢失问题的解决办法
- js限制input标签中只能输入中文
- CleanReg:将注册表垃圾清除出门
- C#中抽象方法与虚拟方法的区别
- 详解Vue-cli webpack移动端自动化构建rem问题
- java&javascript自定义加密数据传输代码示例
- springboot+nginx+https+linux实现负载均衡加域名访问简单测试