import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Properties; public class JdbcUtil { private static Properties env=new Properties(); static{ try{ InputStream is=JdbcUtil.class.getResourceAsStream("/com/cici/conf/env.properties"); env.load(is); is.close(); }catch(Exception e){ throw new ExceptionInInitializerError(e); } } private static final ThreadLocal<Connection> tl=new ThreadLocal<Connection>(); public static Connection getConnection() throws Exception{ Connection conn=tl.get(); if(conn==null){ Class.forName(env.getProperty("driver")); conn=DriverManager.getConnection( env.getProperty("url"), env.getProperty("username"), env.getProperty("password") ); tl.set(conn); } //设置为自动提交 conn.setAutoCommit(false); return conn; } public static void release(ResultSet rs,Statement stm,Connection conn){ if(rs!=null) try{ rs.close(); } catch(Exception e){} if(stm!=null) try{ stm.close(); } catch(Exception e){} if(conn!=null) try{ conn.close(); } catch(Exception e){} } }
env.properties文件内容 driver=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@localhost:1521:XE username=indonesiaprod password=indonesiaprod
调用
Connection conn=null; Statement stm=null; ResultSet rs=null; try{ conn=JdbcUtil.getConnection(); stm=conn.createStatement(); if(level==1) { String sql1=" "; rs=stm.executeQuery(sql1); int i=0; while(rs.next()){ i = rs.getInt(1); } stm.clearBatch(); } }catch( Exception e){ try { conn.rollback(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } e.printStackTrace(); }finally{
//release之前提交 conn.commit(); JdbcUtil.release(rs, stm, null); } }