我正在尝试将一个由12个数组组成的JAVA程序的输出用于一堆不同的用户并将它们放入表中。无论如何都要批量做这个,而不必一次做一个吗?
答案 0 :(得分:2)
我这样做了:
INSERT INTO my_users (name, passwd, somefield) VALUES ('joe', 'pass', 'abc'), ('jeff', 'pass1', 'abcd'), ('jake', 'pass2', 'abcde')
答案 1 :(得分:1)
始终可以将数据写入文件,并使用LOAD DATA INFILE语句将它们批量读入数据库。但是根据规模,可能不值得担心这里的速度。
答案 2 :(得分:1)
使用批量插入。适应http://www.roseindia.net/jdbc/jdbc-mysql/PreparedStatementBatchUpdate.shtml:
Connection conn;
User[] users;
PreparedStatement prest = con.prepareStatement("INSERT INTO users VALUES(?,?)");
conn.setAutoCommit(false);
for(user : users) {
prest.setString(1, User.getUserName());
prest.setInt(2, User.getAge());
}
prest.addBatch();
int count[] = prest.executeBatch();
conn.setAutoCommit(true);
prest.close();
在现实世界中,你会想要用一堆try..finally块来撒上它,但我会假设你知道或者可以在别处找到如何做到这一点。
答案 3 :(得分:0)
INSERT
允许您一次插入多个值:
INSERT
INTO
table
(column_a, column_b, column_c)
VALUES
(1, 2, 3),
(4, 5, 6),
(7, 8, 9)
;
这是标准SQL,应该适用于大多数数据库。 (我遇到过一些例外:过时的DB和MSSQL,但你使用的是MySQL,它支持这个。)