我想在一个表中插入一条用字符串转换而来的记录:
String str="01 李四 男 汉 共产党员 本科";
String[] sub=new String[6];
sub[0]=str.substring(0, 2);
sub[1]=str.substring(3, 5);
sub[2]=str.substring(6, 7);
sub[3]=str.substring(8,9);
sub[4]=str.substring(10, 14);
sub[5]=str.substring(15, 16);
insert into ygong values('sub[0]','sub[1]','sub[2]','sub[3]','sub[4]','sub[5]')
执行后,我打开表一看,这条记录是插入进去了,但字段值从左至右都是“sub[0]-sub[5]”
而不是我想要的字符串!请教各位高手,这是怎么回事?感激不尽!
String str="01 李四 男 汉 共产党员 本科";
String[] sub=new String[6];
sub[0]=str.substring(0, 2);
sub[1]=str.substring(3, 5);
sub[2]=str.substring(6, 7);
sub[3]=str.substring(8,9);
sub[4]=str.substring(10, 14);
sub[5]=str.substring(15, 16);
insert into ygong values('sub[0]','sub[1]','sub[2]','sub[3]','sub[4]','sub[5]')
执行后,我打开表一看,这条记录是插入进去了,但字段值从左至右都是“sub[0]-sub[5]”
而不是我想要的字符串!请教各位高手,这是怎么回事?感激不尽!
String[] sub = str.split(" ");//你使用空格区分各个值的,这里就用空格解析
下面是你的程序中的insert语句,这样做只是把字符串‘sub[0]’,'sub[1]'...作为其值提交到数据库
insert into ygong values('sub[0]','sub[1]','sub[2]','sub[3]','sub[4]','sub[5]')
正确的做法应该是:"insert into ygong values('" + sub[0] + "','" + sub[1] + “','” + sub[2] + “','” + sub[3] + “','” + sub[4] + “','” + sub[5] + “')”
pst。setString(2,str[1])
请楼主及时结贴
String sql = "insert into ygong values('" + sub[0] + "','" + sub[1] + "','"+ sub[2] +"','" + sub[3] + "','" + sub[4] + "','" + sub[5] + "')";
rs = pstmt .executeUpdate(sql) ;
或者这样:
String sql = "INSERT INTO note VALUES(?,?,?,?,?)" ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,sub[0]) ;
pstmt.setString(2,sub[1]) ;
...
pstmt.executeUpdate() ;方式就是这样,不知道句子有没写错,自己试试吧
String[] newStr=str.splice(" ");//空格分隔
int len=newStr.length();//数组长度StringBuffer sb=new StringBuffer("insert into tab values (");
for(int i=0;i<len-1;i++){
sb.append("'"+newStr[i]+"',")
}
sb.append("'"+newStr[len]+"'");
sb.append(")");
对就是这么解决,我这个新手今天刚学习的~~哈
values('sub[0]','sub[1]','sub[2]','sub[3]','sub[4]','sub[5]')
这个地方出现了问题!更改如下:
"insert into ygong values('" + sub[0] + "','" + sub[1] + “','” + sub[2] + “','” + sub[3] + “','” + sub[4] + “','” + sub[5] + “')”
但是个人感觉createStatement不好用,最好使用prepareStatement!使用预编译SQL语句就可以避免很多这种书写的遗漏~~呵呵。