
找不到
可能要携程ArrayList就行了,但是我插入的数据
是String
[]
ids=str.split(",")这种形式的,不能用ArrayList吧,反正这个没成功,后来我又把str转换成
List,才可以用collection=list来批量 *** 作。
List
a=ArraYlsit.asList(str)
在使用foreach的时候最容易出错的就是collection属性,该属性是必须指定的,在不同情况
下,该属性的值是不一样的,主要有一下3种情况:
1.
如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
2.
如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
3.
如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在breast里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key.
我采用mybatis直接将数组当作参数传入总是出现错误,说找不到参数,也按照上述的条件一一尝试结果还是不行,我想可能出现这个问题的原因是mybatis的版本问题。后来采用传入一个实体,在实体里面定义数组的方法。然后 *** 作,这样就不出错了。此方法虽为下册,但也可以应付一些关键问题。
在对应的.xml中添加insert标签,换掉中间的insert语句<insert id="addUser" parameterType="User"
useGeneratedKeys="true" keyProperty="id">
insert into user(userName,userAge,userAddress)
values(#{userName},#{userAge},#{userAddress})
</insert>
-- Oracle SEQUENCE 序列语法:CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}]
示例:
CREATE SEQUENCE sq_test -- 序列名
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
MAXVALUE 9999999 -- 最大值9999999
NOCYCLE -- 一直累加,不循环
NOCACHE
SELECT sq_test.NEXTVAL FROM DUAL
可以使用sequence的地方:
-- 不包含子查询、snapshot、VIEW的 SELECT 语句
-- INSERT语句的子查询中
-- NSERT语句的VALUES中
-- UPDATE 的 SET中
可以看如下例子:
INSERT INTO table_name VALUES (sq_test.nextval, 'CLERK',1200, SYSDATE)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)