当前位置: 代码迷 >> Java Web开发 >> 关于Struts的有关问题
  详细解决方案

关于Struts的有关问题

热度:191   发布时间:2016-04-17 12:35:47.0
关于Struts的问题
在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有错误。请指教,谢谢。

}

}

------解决方案--------------------
sql不能那样写
sql="insert into StrutsUser values("+user.getUsername()+","+"user.getPassword())";
------解决方案--------------------
楼上的好像也不是正解应该是
sql="insert into StrutsUser values('"+user.getUsername()+"','"+user.getPassword()+"')";
------解决方案--------------------
String sql;
sql="insert into StrutsUser values( \'"+user.getUsername()
+" \',\'"
+user.getPassword()+"\')";
两个字段为字符串类型时,OK。
如果是其它类型,可能有变化,和数据库有关;
最好的办法是,跟踪语句到这个地方,把最终的执行语句直接在数据库里面执行,如要没有错那就OK了
------解决方案--------------------
PreparedStatement pstmt = conn.prepareStatement("insert into StrutsUser values(?,?); 
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
pstmt.execute();