记录一次mybatis中parameterType中使用String和string的区别

今天修改一个问题。

xml中使用的是#{xxxx  jdbcType=String}

但是这个sql  查询需要用到  in

如果这样查询 会变成

in  ( "1,2,3,4,5")

所以我把他改成

in

<foreach collection="xxx.split(‘,‘)" item="item" open="(" close=")" separator=",">

  #{item}

</foreach>

修改完毕  但是 报错

巴拉巴拉  意思就是 String  类型 无法split  之类的

这下奇怪了。 突然看到  上面的 parameterType="String"

搜嘎。

把他改成小写的string   搞定。

记录一下原因:

mybatis 中 paramerter  中设置 String  (大写)   等同于  写入  javaType = java.lang.String
如果写入 string   那么就等同于  说  我传过来的 值 中所有的类型 都是 string  可以是List<String> 也可以是string  那么
使用  xxx.split(‘,‘) 就可以了 。  如果使用 String  那么就不行了

原文地址:https://www.cnblogs.com/sunshine99/p/12169211.html

时间: 2024-10-07 03:49:00

记录一次mybatis中parameterType中使用String和string的区别的相关文章

mybatis配置文件xml中插入新数据

初用mybatis,发现很好的一个操作数据库的框架,里面有一些小技巧,挺简单,很实用,记录一下: mybatis的插入语句: <insert id="insertAsset" parameterType="Criteria">    <selectKey resultType="java.lang.String" keyProperty="condition.Id" order="BEFORE&qu

MyBatis在Oracle中插入数据并返回主键的问题解决

引言:  在MyBatis中,希望在Oracle中插入数据之时,同时返回主键值,而非插入的条数... 环境:MyBatis 3.2 , Oracle, Spring 3.2   SQL Snippet in XML Configuration: <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo"> <selectKey resultType="

Mybatis中insert中返回主键ID的方法

1.XyzMapper.xml <insertid="doSomething"parameterType="map"useGeneratedKeys="true"keyProperty="yourId"> ... </insert> 或 <insert id="doSomething" parameterType="com.xx.yy.zz.YourClass&quo

Mybatis调用Oracle中的存储过程和function

一.Mybatis调用存储过程 1 在数据库中创建以下的存储过程create or replace procedure pro_hello(p_user_name in varchar2,p_result out varchar2) isbegin  p_result := 'hello,' || p_user_name;end; 2 编写SQL映射文件mapper.xmlstatementType里的CALLABLE是标注此sql为存储过程.parameterType是标注要传的参数,看了一些

mysql+mybatis 在mybatis一个标签中,执行多条sql语句

然后在mybatis映射文件中的标签中,一般不能执行多条sql,如下: <insert id="addUser" parameterType="User" > insert into t_users (name,password,phone) values (#{name}, #{password},#{phone}); insert into t_dep (depname) values (#{depname}) </insert> MyS

编程题:功能:将5个学生记录输入文件d:\stu1.txt中,并且显示在屏幕上。

编程题:文件读写fprintf().fscanf()使用,功能:将5个学生记录输入文件d:\stu1.txt中,并且显示在屏幕上. #include<stdio.h> void main() { FILE *fp;long num;int n,score;char name[20]; int N=5; fp=fopen("d:\\s tu1.txt","w"); for(n=1;n<=N;n++) { scanf("%s%10ld%d&q

[DB][mybatis]MyBatis mapper文件中的变量引用方式#{}与${}的差别

MyBatis mapper文件中的变量引用方式#{}与${}的差别 默认情况下,使用#{}语法,MyBatis会产生PreparedStatement语句中,并且安全的设置PreparedStatement参数,这个过程中MyBatis会进行必要的安全检查和转义. 示例1: 执行SQL:Select * from emp where name = #{employeeName} 参数:employeeName=>Smith 解析后执行的SQL:Select * from emp where n

mybatis的配置文件中&lt;selectKey&gt;标签问题

1.mybatis的配置文件中,使用sequence生成主键 未执行add方法之前,主键未生成(null):刚执行add之后,主键即生成(212) 这里的重点是,一旦执行add方法,配置文件中的selectKey先将生成的主键封装到RegistInfoEntity实体中,再插入数据库中. 2.使用编程式事务transactionTemplate

MySQL触发器初试:当A表插入新记录,自动在B表中插入相同ID的记录

今天第一次用MySQL的触发器,怕忘了,赶紧写篇博客记录一下. 废话不说,先上语法: 1 CREATE TRIGGER trigger_name 2 { BEFORE | AFTER } { INSERT | UPDATE | DELETE } 3 ON tbl_name 4 FOR EACH ROW 5 trigger_body 事情的起因是这样的:我有一个人员信息表 pers.因为字段很多,就把中文字段单出来,另建了一个表 perscn.我希望当 pers 插入一条记录,perscn 也能自