我想在一个表中插入一条用字符串转换而来的记录:
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]”
而不是我想要的字符串!请教各位高手,这是怎么回事?感激不尽!

解决方案 »

  1.   

    结果是什么样的还有,你最好用preparedStatement
      

  2.   

    "....  values('"+sub[0]+'" + sub[1] + "'" + sub[2]+.......
      

  3.   

    用一下函数取得字符串数组
    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] + “')”
      

  4.   

    是不是很麻烦请使用preparedStatement,不会自己看APIvalues(?,?,?,?)pst。setString(1,str[0])
    pst。setString(2,str[1])

    请楼主及时结贴
      

  5.   

    这样:
    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() ;方式就是这样,不知道句子有没写错,自己试试吧
      

  6.   


    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(")");
      

  7.   

    ".... values('"+sub[0]+'" + sub[1] + "'" + sub[2]+.......
    对就是这么解决,我这个新手今天刚学习的~~哈
      

  8.   


    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语句就可以避免很多这种书写的遗漏~~呵呵。