mybatis分组排序,mybatis操作数据库的方式

  mybatis分组排序,mybatis操作数据库的方式

  

目录

mybatis数据库排序mybatis按排序方法排序,可以大大避免sql使用$而不是#

 

  

mybatis数据库排序

今天我们习惯了逆序输出数据库。因为刚接触mybatis,不太了解。在网上找了半天,终于找到了一些有用的信息。

 

  我的目标是这样的:将数据库中的信息分为无效和有效,将数据库中信息的有效值逆序输出,然后输出到表中。

  我在网上看到这个声明,SELECT * FROM photo ORDER BY id desc;所以我直接拿过来用了,但是有个问题,因为我的是有条件排序的。

  几经尝试,发现是这样写的,选择

  include refid= Base _ Column _ List /from manager _ user where is _ valid=1 order BY id desc;这样,输出的内容就达到了我的目的,语句中的desc可以按asc升序排序。

  00-1010使用MyBatis解析xml进行排序时,遇到了排序无效的问题!

  #将所有传入的数据视为一个字符串,自动传入的数据将添加一个双引号。比如order by #{user_id},如果传入的值是111,那么解析成sql时的值就是order by“111”,如果传入的值是id,那么解析的sql就是order by“ID”。$传入的数据直接在sql中显示和生成。例如,order by ${user_id},如果传入的值是111,则解析为sql时的值是order by 111,如果传入的值是id,则解析的sql是order by id。

  00-1010 $无法阻止Sql注入。$方法通常用于传入数据库对象,比如表名。如果一般可以用#,就不要用$了。

  00-1010附加解决方案代码段:

  OrderByField是传入排序的参数值!

  选择when test=orderByField!=null和orderByField!= select when test= isAsc==true order by { order by field } ASC/when otherwise order by { order by field } desc/otherwise/choose/when otherwise order by id desc/otherwise/choose

  当test=sort!=null #{sort,jdbcType=VARCHAR} if test=order!=null # {order,JDBC type=varchar}/if/other id ASC,create _ time ASC/other/choose原因为: #{order,JDBC type=VARCHAR },MyBatis会自动将排序字段视为字符串,相当于order by create _ time desc 。可以通过执行,但无效,这与order by create_time desc 的结果不同。

  解决方案:使用了order,我的Batis将把它视为一个直接变量。变量替换成功后,不会以字符串的形式引用,同样的排序顺序,Mybatis也一样。

  {订单},所以

  当test=sort!=null ${sort} if test=order!=null $ { order }/if/when other id ASC,create _ time ASC/other/choose #可以极大地防止Sql注入$但无法防止SQL注入$被用来传入数据库对象![CDATA[],此符号内的语句不会被视为字符串,而是直接被视为sql语句,如执行存储过程。

  在mapper文件中编写sql语句时,建议使用特殊字符,如:等。

  以上个人经验,希望能给大家一个参考,也希望大家能支持盛行的IT。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: