SQL

我有这样一条JAVA语句:("insert  into EMPLOYEE  (empno,ename,position,res) values(no,name,zw, bz )"); 这些是变量:no,name,zw, bz;我怎么写才能把这些变量的值给 empno,ename,position,res,谢谢大家指点:

解决方案 »

  1.   

    String name="zhangsan";
        String zw="haha";
        String bz="lala";
        String sql="insert  into EMPLOYEE  (empno,ename,position,res) values(?,?,?,?)"; 
        try {
          java.sql.PreparedStatement ps = con.prepareStatement("");
          ps.setInt(1,no);
          ps.setString(2,name);
          ps.setString(3,zw);
          ps.setString(4,bz);
          ps.executeUpdate();
        }
        catch (SQLException ex) {
          ex.printStackTrace();
        }
      

  2.   

    这写错了
    java.sql.PreparedStatement ps = con.prepareStatement(sql);
      

  3.   

    no,name,zw, bz 里的值都是我从文本框里获得的,我现在要把他们的值插到
    数据库里,
      

  4.   

    SQL说穿了就是字符串,这种直接在程序里面嵌sql代码的方式,我不是很赞成,这样不好维护,也容易出问题,当然,如果你一定要这么做的话,我建议,写一个SqlCast类,实现各种java类型到Sql类型的转换,最常见的是字符串类型转换为数据库的字符串类型的问题
    比如:I'm guileen
    转换为sql字符串应该是 'I''m guileen' ,前后要加一个单引号,中间的单引号要替换为两个单引号。而你说的那条语句就可以是
    "insert  into EMPLOYEE (empno,ename,position,res) values("
    +sqlcast.cast(no)+","
    +sqlcast.cast(name)+","
    +sqlcast.cast(zw)+","
    +sqlcast.cast(bz)
    +")"