【问题标题】:How to insert in database sqlite3如何插入数据库sqlite3
【发布时间】:2013-10-06 10:32:48
【问题描述】:

在我的数据库中插入数据时遇到问题。这是我的代码的样子。

rs = stat.executeQuery("Select * from students;");
while (rs.next()) {
    idNum = rs.getString("idNum");
    stat.executeUpdate(
        "INSERT INTO record VALUES (null,'" + idNum + "','" + descript +
             "'," + value + ",'" + user.getText() + "','" + timeStamp + "')"
                            );
}//while

如您所见,我想为每个学生 rs = stat.executeQuery("Select * from students;"); 插入一个数据并获取他们所有的学生编号 idNum = rs.getString("idNum"); 这是学生表中的内容:

idNum..............Name

11000001.........Leonardo

11000002.........David

11000003.........Robert

11000004.........Anna

11000005.........May

现在,当我得到他们所有的 idNum 时,我希望将它们插入到如下所示的表记录中:

idNum.........descript.........amount........blablablabla

11000001.......Fee...............30

11000002.......Fee...............30

11000003.......Fee...............30

11000004.......Fee...............30

11000005.......Fee...............30

问题是只有第一个 idNum 被插入到表记录中,如下所示:

idNum.........descript.........amount........blablablabla

11000001.......Fee...............30

【问题讨论】:

    标签: java sql database sqlite sql-insert


    【解决方案1】:

    您不应该两次使用相同的语句对象 stat:一旦您重用是执行更新(在您的情况下是插入),它会关闭您正在循环的结果集。

    【讨论】:

    • 所以我只需要从中删除统计信息? stat.executeUpdate( "INSERT INTO record VALUES (null,'" + idNum + "','" + descript + "'," + value + ",'" + user.getText() + "','" + timeStamp + "')" );
    【解决方案2】:

    使用 ArrayList 存储学生表中的所有 idNum。然后循环遍历列表以插入记录表。

    【讨论】:

    • ArrayList list = new ArrayList(); while (rs.next()) { list.add(rs.getString("idNum"));} for(int i=0; i
    • 当我编译它时说... Blank.java 使用未经检查或不安全的操作我该如何解决?
    • 我猜这只是警告,因为您没有指定数组集合存储的对象类型
    【解决方案3】:

    您可以使用单个语句来复制数据。 (使用参数可以避免包含特殊字符的字符串的格式问题。)

    PreparedStatement ps = conn.prepareStatement(
        "INSERT INTO record SELECT NULL, idNum, ?, ?, ?, ? FROM students");
    ps.setString(1, descript);
    ps.setInt   (2, value);
    ps.setString(3, user.getText());
    ps.setString(4, timeStamp);
    ps.execute();
    

    【讨论】:

    • 谢谢 CL。我真的很感激.. =]
    猜你喜欢
    • 2011-12-21
    • 2020-07-20
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    相关资源
    最近更新 更多