2016 - 2024

感恩一路有你

mybatis 返回string mybatis中参数为枚举类型时怎么办?

浏览量:2934 时间:2021-03-12 06:29:00 作者:admin

mybatis中参数为枚举类型时怎么办?

一直用hibernate,习惯了枚举类的使用,非常方便,现在用mybatis,发现枚举的处理,还是需要单独处理下。如果想使用mybatis自带的枚举类处理,有2种方式,一个是EnumTypeHandler,一个是EnumOrdinalTypeHandler。2者的区别是EnumTypeHandler直接存储name值,而EnumOrdinalTypeHandler会存储enum类里的序号值,此时数据库表字段一般用int类型的处理。使用方式比较简单,直接在mapper文件里的字段上,加上typeHandler="org.apache.ibatis.type.EnumOrdinalTypeHandler"

mybatis in接收参数?

使用List<String> 将参数传入

一般情况下,select xx where in(x,x)查询,返回结果按主键排序,如果你要按in()中值的排顺,则使用下面的语句

select * from talbe where id in(1,2,3,4) ORDER BY FIND_IN_SET( id, ´1,2,3,1´)

那么在配置中可以使用下面的方式进行参数的传递:




mybatis传入string参数,parametertype怎样写?

MyBatis的传入参数parameterType类型分两种:

1. 1. 基本数据类型:int,string,long,Date

1. 2. 复杂数据类型:类和Map。

如何获取参数中的值:

2.1 基本数据类型:#{参数} 获取参数中的值;

2.2 复杂数据类型:#{属性名} ,map中则是#{key}。

基本数据类型案例:

复杂数据类型案例:

mybatis取传进来的参数mybatis#{}${}区别是啥?

#{} : 表示一个占位符

${} : 表示字符拼接 , 会引起sql注入风险, 不推荐大家使用

演示:name 的值为 zhangsan

select * from user where name = #{name}

select * from user where name = ${name}

但是 #{} 和 ${} 在预编译中的处理是不一样的。#{} 在预处理时,会把参数部分用一个占位符 ? 代替,变成如下的 sql 语句:

select * from user where name = ?

而 ${} 则只是简单的字符串替换,在动态解析阶段,该 sql 语句会被解析成

select * from user where name = "zhangsan"

mybatis 返回string mybatis传递多个参数 mybatis返回数组类型

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。