Java和MySQL在進行開發時是常常結合使用的,而在某些場景下需要將一個List傳入MySQL進行操作,那么怎么實現呢?
// 假設我們有一個List,里面存儲了User對象 ListuserList = new ArrayList<>(); // 將List轉換為批處理的SQL語句 String sql = "INSERT INTO user (name, age) VALUES (?, ?)"; // 假設表中有name和age兩個字段 Connection conn = null; PreparedStatement ps = null; try { conn = dataSource.getConnection(); conn.setAutoCommit(false); ps = conn.prepareStatement(sql); for (User user : userList) { ps.setString(1, user.getName()); ps.setInt(2, user.getAge()); ps.addBatch(); } ps.executeBatch(); conn.commit(); } catch (SQLException e) { if (conn != null) { try { conn.rollback(); } catch (SQLException ex) { ex.printStackTrace(); } } e.printStackTrace(); } finally { if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.setAutoCommit(true); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
以上就是將一個List傳入MySQL進行批量操作的示例代碼,其中主要涉及到批處理操作和事務處理。