java.sql.SQLException : Invalid argument value: java. io.NotSerializableException 异常

标签 java mysql jdbc struts2 model-driven

这是我出现错误的 SQL 连接类代码。

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;
    }
}

这是我调用此 getdata() 函数的 LogAction 类。

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;
}

将模型对象设置为准备好的语句的参数是没有意义的。

关于java.sql.SQLException : Invalid argument value: java. io.NotSerializableException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17212949/

相关文章:

mysql - Hibernate 多对多映射和查询

php - SUM重复的mysql php

java - Statement.executeUpdate() 返回 -1 是什么意思?

Java PreparedStatement RETURN_GENERATED_KEYS 不工作

java - 如何在 Youtube API 中设置为 child 制作

java - Eclipse 控制台中的 H2 数据库结果

java - 刷新 Activity 而不再次打开?

java - New Relic MySQL 服务器未显示

java - Jdbc SQL参数问题

java - 为什么 JUnit 测试方法需要无效?