使用mysql JDBC创建和插入值

时间:2010-03-30 04:20:26

标签: java mysql jdbc

我有示例代码。

public void UpdateTable1() {
    for (int t = 0; t < 20; t++) {

        if (consumer == 1 && number == 1 && provider1 == 31 && feedback == 1) {
            try {
                Class.forName(driverName);
                con = DriverManager.getConnection(url + dbName, "root", "mysql");
                try {
                    Statement st = con.createStatement();
                    int val = st.executeUpdate("INSERT Consumer1 VALUES ("
                        + 31 + "," + "'Printer'" + ", " + 1 + " " + ")");
                    System.out.println("1 row affected");
                } catch (SQLException s) {
                    System.out.println("SQL statement is not executed!");
                }
                con.close();
            }
        }
    }
}

我想将同一组值(31,printer,1)插入到表consumer2,consumer3中。如果不使用其他try catch语句就可以...请帮助我。

3 个答案:

答案 0 :(得分:1)

我希望我没有冒犯,但你确定你完全理解try-catch的工作原理吗?

try catch语句在for for for t循环中的原因是(可能)某人想要确保一次失败不会阻止循环的其他迭代发生。你最终可能会以损坏的数据结束。

您必须做出的决定是,您是否要在同一个try-catch下进行所有三次插入。

要轻松做三次插入,在i上从1到3进行循环,每次创建一个不同的语句,通过添加字符串,这样第一次表是Consumer1,第二次是Consumer2,等等。将整个循环放在try catch中,或者将-try-catch放在循环体内。

答案 1 :(得分:0)

你可以替换

"INSERT Consumer1 VALUES ("

"INSERT INTO Consumer" + (t + 1) + " VALUES ("

答案 2 :(得分:0)

我对此不太清楚。每个连接可以创建多少语句是否有一些限制?或者每次更新后连接都会关闭吗?

如果没有,那么这应该有效

Statement st2 = con.createStatement(); int val = st.executeUpdate("INSERT Consumer2 VALUES ("+ 31 + "," + "'Printer'" + ", " + 1 + " " + ")");
Statement st3 = con.createStatement(); int val = st.executeUpdate("INSERT Consumer3 VALUES ("+ 31 + "," + "'Printer'" + ", " + 1 + " " + ")");

如果连接关闭或者你一次只能做一个语句,那么我猜你可以把整个事情移到私有方法然后用不同的参数调用它,比如:

private boolean doInsert(String tableName) {

con = DriverManager.getConnection(url + dbName, "root", "mysql");
try {
Statement st = con.createStatement();
int val = st.executeUpdate("INSERT " + tableName + " VALUES (" + 31 + "," + "'Printer'" + ", " + 1 + " " + ")"); System.out.println("1 row affected");
return true;
} catch (SQLException s) {
System.out.println("SQL statement is not executed!");
return false; }
}