当前位置: 技术问答>java相关
请问怎样在调用存储过程时使用setArray方法?
来源: 互联网 发布时间:2015-03-09
本文导语: 我是这样做的: int[] arrayFenShu = new int[8]; int[] arrayContId = new int[8]; String[] arrayAuthor = new String[8]; 、、、、、、、、、、、、、、、、、、//对数组进行赋值 CallableStatement cs = conn.prepareCall( "{? = ca...
我是这样做的:
int[] arrayFenShu = new int[8];
int[] arrayContId = new int[8];
String[] arrayAuthor = new String[8];
、、、、、、、、、、、、、、、、、、//对数组进行赋值
CallableStatement cs = conn.prepareCall( "{? = call web.pkg_BBS.fangFen(?,?,?,?,?)}" );
cs.registerOutParameter(1,Types.VARCHAR);
cs.setInt(2,titleid);
cs.setInt(3,iRe);
cs.setArray(4,arrayFenShu);
cs.setArray(5,arrayContId);
cs.setArray(6,arrayAuthor);
cs.execute();
运行报错:
/HdzxBBS_show.jsp:418: 在 java.sql.PreparedStatement 中的 setArray(int,java.sql.Array) 不能被应用到 (int,int[])
cs.setArray(4,arrayFenShu);
^
/HdzxBBS_show.jsp:420: 在 java.sql.PreparedStatement 中的 setArray(int,java.sql.Array) 不能被应用到 (int,int[])
cs.setArray(5,arrayContId);
^
/HdzxBBS_show.jsp:422: 在 java.sql.PreparedStatement 中的 setArray(int,java.sql.Array) 不能被应用到 (int,java.lang.String[])
cs.setArray(6,arrayAuthor);
怎么办?
int[] arrayFenShu = new int[8];
int[] arrayContId = new int[8];
String[] arrayAuthor = new String[8];
、、、、、、、、、、、、、、、、、、//对数组进行赋值
CallableStatement cs = conn.prepareCall( "{? = call web.pkg_BBS.fangFen(?,?,?,?,?)}" );
cs.registerOutParameter(1,Types.VARCHAR);
cs.setInt(2,titleid);
cs.setInt(3,iRe);
cs.setArray(4,arrayFenShu);
cs.setArray(5,arrayContId);
cs.setArray(6,arrayAuthor);
cs.execute();
运行报错:
/HdzxBBS_show.jsp:418: 在 java.sql.PreparedStatement 中的 setArray(int,java.sql.Array) 不能被应用到 (int,int[])
cs.setArray(4,arrayFenShu);
^
/HdzxBBS_show.jsp:420: 在 java.sql.PreparedStatement 中的 setArray(int,java.sql.Array) 不能被应用到 (int,int[])
cs.setArray(5,arrayContId);
^
/HdzxBBS_show.jsp:422: 在 java.sql.PreparedStatement 中的 setArray(int,java.sql.Array) 不能被应用到 (int,java.lang.String[])
cs.setArray(6,arrayAuthor);
怎么办?
|
应该是数据类型不匹配,我再看看
|
类型不匹配呀
|
你为什么要传Array类型的参数呢?