在Struts中,我写了一个JavaBean执行具体的业务逻辑package struts;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;import servlet.User;public class UserBean {
private Connection conn;
public UserBean() throws Exception{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=students","sa","1987825");
}
public void addUser(User user) throws Exception{
Statement sm=conn.createStatement();
sm.execute("insert into StrutsUser values(user.getUsername(),user.getPassword())");
                                 //说是insert有错误。请指教,谢谢。

}}    

解决方案 »

  1.   

    sql不能那样写
    sql="insert into StrutsUser values("+user.getUsername()+","+"user.getPassword())"; 
      

  2.   

    错了
    sql="insert into StrutsUser values("+user.getUsername()+","+user.getPassword()+")"; 
      

  3.   

    楼上的好像也不是正解应该是
    sql="insert into StrutsUser values('"+user.getUsername()+"','"+user.getPassword()+"')"; 
      

  4.   

    String sql;
    sql="insert into StrutsUser values( \'"+user.getUsername()
                                      +" \',\'"
                                      +user.getPassword()+"\')";
    两个字段为字符串类型时,OK。
    如果是其它类型,可能有变化,和数据库有关;
    最好的办法是,跟踪语句到这个地方,把最终的执行语句直接在数据库里面执行,如要没有错那就OK了 
      

  5.   

    PreparedStatement pstmt = conn.prepareStatement("insert into StrutsUser values(?,?); 
    pstmt.setString(1, user.getUsername());
    pstmt.setString(2, user.getPassword());
    pstmt.execute();