PreparedStatement.RETURN_GENERATED_KEYS可以获取刚刚插入数据的id
当使用自增字段时,可以通过这种凡是获取ID值
引用
Connection conn=null;
PreparedStatement ps=null;
String sql="insert into customer(customer_name) values(?)";
ResultSet rs=null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/hibernate","root","123456");
ps = conn.prepareStatement( sql, PreparedStatement.RETURN_GENERATED_KEYS );
ps.setString(1, "jdbc1");
ps.executeUpdate();
rs=ps.getGeneratedKeys();
if ( !rs.next() ) {
System.err.println("wrong ...");
}
final int CUSTOMER_ID_COLUMN_INDEX=1;
System.err.println(rs.getInt( CUSTOMER_ID_COLUMN_INDEX )); //输出刚插入数据返回的Id号
分享到:
相关推荐
)", PreparedStatement.RETURN_GENERATED_KEYS);` 3. **创建带指定索引的自动生成键的PreparedStatement**:`PreparedStatement prepareStatement(String sql, int[] columnIndexes)` - **用途**:创建一个可以...
preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ``` 3. **设置参数**:`PreparedStatement`允许预先设置SQL语句中的参数,提高效率并防止SQL注入。在循环中,`set...
)", PreparedStatement.RETURN_GENERATED_KEYS); ps.setObject(1, person.getUsername()); ps.setObject(2, person.getPassword()); ps.setObject(3, person.getMoney()); int i = ps.executeUpdate(); rs = ps...
System.out.println(generatedKeys.getInt(1)); // 输出自增主键值 } ``` 对于PreparedStatement对象,过程类似: ```java Connection connection = DBUtils.getConnection(); String sql = "insert into user ...
PreparedStatement ps = cn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(1, evo.getEle_elementId()); ps.setString(2, evo.getMmsnews_title()); ps.execute(); // 获取Blob字段 ...
PreparedStatement ps = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(1, mess); ps.setString(2, time1); return ps; } }, keyHolder); int intValue = keyHolder.getKey()...
**方法一:使用PreparedStatement的RETURN_GENERATED_KEYS特性** 这种方法是最推荐且安全的方式,尤其是在多线程环境中。在创建PreparedStatement对象时,通过传递`Statement.RETURN_GENERATED_KEYS`参数,我们可以...
int id = generatedKeys.getInt(1); System.out.println("Generated ID: " + id); } else { throw new SQLException("Creating user failed, no ID obtained."); } } } } catch (SQLException ex) { ex....
在Java编程中,JDBC(Java Database Connectivity)...正确地使用预编译的`PreparedStatement`可以提高代码的可读性和安全性,同时,通过设置`RETURN_GENERATED_KEYS`属性,我们可以轻松地获取新插入记录的自增主键值。
PreparedStatement pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); for (String[] row : data) { pstmt.setString(1, row[0]); pstmt.setString(2, row[1]); pstmt.setString(3, row[2...
)", Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, "new record"); int affectedRows = pstmt.executeUpdate(); if (affectedRows > 0) { try (ResultSet rs = pstmt.getGeneratedKeys()) { if (rs....
例如,执行插入操作时,我们可以使用JdbcTemplate的update()方法,它会自动处理预编译的SQL语句,并且如果需要返回主键,可以使用PreparedStatement的RETURN_GENERATED_KEYS标志来获取自增字段的值。 批量处理是...
`RETURN_GENERATED_KEYS`参数用于获取自动生成的键(如自动递增ID),如果适用的话。 总结来说,Java通过`java.sql`包中的`Connection`、`PreparedStatement`和`Statement`接口提供与MySQL数据库的交互。对于有结果...
PreparedStatement ps=conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(1, u.getName()); ps.setString(2, u.getAddress()); return ps; } }, holder); int insertId=holder.get...