getgeneratedkeyshelper.java
来自「hibernate-3.0.5 中文文档」· Java 代码 · 共 78 行
JAVA
78 行
//$Id: GetGeneratedKeysHelper.java,v 1.1 2004/06/03 16:31:30 steveebersole Exp $package org.hibernate.util;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import org.hibernate.AssertionFailure;/** * @author Gavin King */public final class GetGeneratedKeysHelper { private GetGeneratedKeysHelper() {} private static final int RETURN_GENERATED_KEYS; private static final Method PREPARE_STATEMENT_METHOD; private static final Method GET_GENERATED_KEYS_METHOD; static { try { RETURN_GENERATED_KEYS = Statement.class.getDeclaredField("RETURN_GENERATED_KEYS").getInt(PreparedStatement.class); PREPARE_STATEMENT_METHOD = Connection.class.getMethod( "prepareStatement", new Class[] {String.class, Integer.TYPE} ); GET_GENERATED_KEYS_METHOD = Statement.class.getDeclaredMethod("getGeneratedKeys", null); } catch (Exception e) { throw new AssertionFailure("could not initialize getGeneratedKeys() support", e); } } public static PreparedStatement prepareStatement(Connection conn, String sql) throws SQLException { Object[] args = new Object[] { sql, new Integer(RETURN_GENERATED_KEYS) } ; try { return (PreparedStatement) PREPARE_STATEMENT_METHOD.invoke(conn, args); } catch (InvocationTargetException ite) { if ( ite.getTargetException() instanceof SQLException ) { throw (SQLException) ite.getTargetException(); } else if ( ite.getTargetException() instanceof RuntimeException ) { throw (RuntimeException) ite.getTargetException(); } else { throw new AssertionFailure("InvocationTargetException", ite); } } catch (IllegalAccessException iae) { throw new AssertionFailure("IllegalAccessException", iae); } } public static ResultSet getGeneratedKey(PreparedStatement ps) throws SQLException { try { return (ResultSet) GET_GENERATED_KEYS_METHOD.invoke(ps, null); } catch (InvocationTargetException ite) { if ( ite.getTargetException() instanceof SQLException ) { throw (SQLException) ite.getTargetException(); } else if ( ite.getTargetException() instanceof RuntimeException ) { throw (RuntimeException) ite.getTargetException(); } else { throw new AssertionFailure("InvocationTargetException", ite); } } catch (IllegalAccessException iae) { throw new AssertionFailure("IllegalAccessException", iae); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?