使用JAVA中的JDBC在单个查询中将多行插入两个表中

时间:2013-09-25 19:12:10

标签: java mysql sql jdbc

我有两个表学生(身份证,姓名,城市),老师(身份证,姓名,工资)。 插入Mysql DB需要几行。

INSERT INTO student VALUES ('12', 'Tom', 'New York');
INSERT INTO student VALUES ('13', 'Jack', 'New York');
INSERT INTO teacher VALUES ('01', 'Joy', '42000');
INSERT INTO teacher VALUES ('02', 'Ryan', '39000');

连接器是JAVA中的JDBC,我可以写一个查询来完成它。

1 个答案:

答案 0 :(得分:7)

使用PreparedStatement和批量插入:

List<Student> students = ...
Connection con = ...
String insertSql = "INSERT INTO student VALUES (?, ?, ?)";
PreparedStatement pstmt = con.prepareStatement(insertSql);
for (Student student : students) {
    pstmt.setString(1, student.getId()); //not sure if String or int or long
    pstmt.setString(2, student.getName());
    pstmt.setString(3, student.getCity());
    pstmt.addBatch();
}
pstmt.executeBatch();
//close resources...

Teacher相似。

更多信息: