这是我出现错误的SQL Connection类的代码。
public class SqlConnection {
static Connection con;
.......
static public ResultSet getData(String sql, List<LogModel> alist)
throws ClassNotFoundException, SQLException {
PreparedStatement pst = con.prepareStatement(sql);
if (alist != null) {
for (int i = 1; i <= alist.size(); i++) {
pst.setObject(i, alist.get(i-1)); //Exception at this Line
}
}
ResultSet rs = pst.executeQuery();
return rs;
}
}
这是
LogAction
类,我在其中调用此getdata()
函数。public class LogAction extends ActionSupport implements ModelDriven<LogModel>, Preparable {
LogModel log = null;
List<LogModel> alist = null;
public static final String FAILURE = "failure";
@Override
public void prepare() throws Exception {
log = new LogModel();
alist = new ArrayList<LogModel>();
}
@Override
public LogModel getModel() {
return log;
}
public String login() throws ClassNotFoundException, SQLException {
String sql = "Select username,password from registration where username=? and password=?";
alist.add(log);
System.out.println(alist);
ResultSet rs = SqlConnection.getData(sql, alist);
if (rs.next()) {
return SUCCESS;
} else
return FAILURE;
}
}
最佳答案
修改您的代码为
static public ResultSet getData(String sql, String username, String password)
throws ClassNotFoundException, SQLException {
PreparedStatement pst = con.prepareStatement(sql);
pst.setString(1, username);
pst.setString(2, password);
ResultSet rs = pst.executeQuery();
return rs;
}
将模型对象设置为prepared语句的参数是没有意义的。
关于java - java.sql.SQLException:无效的参数值:java.io.NotSerializableException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17212949/