日期:2014-05-18  浏览次数:20791 次

用Statement对象做增加数据时出错(很简单的问题)
在执行数据库增加操作时     第3行语句编译出错  
提示userName有错误:Invalid   character   constant
1)Statement   stmt=conn.createStatement
2)     stmt.execute( "insert   into   stu   values
3)     ( " '+userName+ ' ", " '+language+ ' ", " '+age+ ' ", " '+favString+ ' ") ");
4)stmt.close();

后来只好将其该为:
PreparedStatement   psmt=conn.prepareStatement( "insert   into   stu(userName,language,age,favString)   values(?,?,?,?) ");
    psmt.setString(1,   userName);
    psmt.setString(2,   language);
    psmt.setInt(3,   age);
    psmt.setString(4,   favString);
    psmt.execute();
    psmt.close();
改后可以正常运行,但要是想用第一种方法怎么写啊?

------解决方案--------------------
另外,按你第二种的写法,age应该是int型的,怎么你还要在第一种中用 ' '来传age呢?
所以我上面的写法也是不对的,该改为
"insert into stu values( ' "+userName+ " ', ' "+language+ " ', "+age+ ", ' "+favString+ " ') "
ps:基础,基础,基础!!!!