📄 dbinit.java
字号:
package com.hrsoft.db; import java.sql.*; import java.util.*; import java.io.*; import com.hrsoft.db.DBConnectionManager; public class dbinit{ // implements Database private Connection conn = null; private Statement stmt = null; private PreparedStatement prepstmt = null; private ResultSet rs = null; private ResultSetMetaData rsmd = null; private DBConnectionManager dcm=null; private String Driver = null; private String url = null; private String user = null; private String passwd = null; private boolean isConnect = false; private String odbc = null; private void init(String odb) { try{ dcm = DBConnectionManager.getInstance(odb); //System.out.println(dcm); if(dcm == null){ //this.conn == null || System.out.println("Database Connect false!"); //throw new Exception("Database Connect false!"); //return; }else{ this.conn = dcm.getConnection(); //this.setStmt(1);//默认 } }catch (Exception e) { e.printStackTrace(); } } public dbinit() { init("jdbc"); this.odbc = "jdbc"; } public dbinit(String odb) { if(odb == null) odb="jdbc"; this.odbc = odb; init(odb); } //zxf modify public void setConn(boolean bcommit){ try{ conn.setAutoCommit(bcommit); } catch (SQLException e) { e.printStackTrace(); } } public void setCommit(){ try{ conn.commit(); } catch (SQLException e) { e.printStackTrace(); } } public void setRollback(){ try{ conn.rollback(); } catch (SQLException e) { e.printStackTrace(); } } public Statement getStmt(){ return stmt; } public ResultSetMetaData executeMetaData(String sql){ try{ setStmt(1); ResultSet rs = stmt.executeQuery(sql); rsmd = rs.getMetaData(); }catch(Exception ex) { rsmd = null; System.err.println("dbinit.executeMetaData():"+ex.getMessage()); }finally { return rsmd; } } public void setStmt(int iEnum){ try{ switch(iEnum) { case 0: stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); break; case 1: stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); break; case 2: stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); break; case 3: stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); break; case 4: stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE); break; case 5: stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY); break; default : stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); break; } } catch(Exception ex){ System.err.println("DBConnect.setStmt:"+ex.getMessage()); } } public void setStmtPrep(String sql,int iEnum){ try{ switch(iEnum) { case 0: prepstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); break; case 1: prepstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); break; case 2: prepstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); break; case 3: prepstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); break; case 4: prepstmt = conn.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE); break; case 5: prepstmt = conn.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY); break; default : prepstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); break; } } catch(Exception ex){ System.err.println("DBConnect.setStmtPrep:"+ex.getMessage()); } } public oracle.jdbc.OracleCallableStatement set_SP_Stmt(String spName){ try{ return (oracle.jdbc.OracleCallableStatement)conn.prepareCall(spName); } catch(Exception e) { System.out.println("DBConnect.set_SP_Stmt:"+e.getMessage()); return null; } } //*zxf end public String getCatalog(){ String tmp = ""; try{ if(this.conn != null) tmp = this.conn.getCatalog(); }catch(SQLException e) { e.printStackTrace(); } return tmp; } public ResultSet executeQuery(String strSQL) { try { this.setStmt(1); this.stmt = getStmt(); if(this.stmt != null){ this.rs = this.stmt.executeQuery(strSQL); } } catch(SQLException e) { //this.close(); e.printStackTrace(); } finally { try{ // Always close properly }catch(Exception e){ e.printStackTrace(); } } return this.rs; } public boolean executeUpdate(String strSQL){ boolean isSuccess = false; try{ setStmt(0);//可更新 stmt.executeUpdate(strSQL); isSuccess = true; } catch(SQLException e) { //this.close(); e.printStackTrace(); return isSuccess = false; } finally { try{ // Always close properly }catch(Exception e){ e.printStackTrace(); } } return isSuccess; } //public void prepareStatement(String sql,int iType) // throws SQLException { // setStmtPrep(sql,iType); //} public ResultSet executeQuery() throws SQLException { if (prepstmt != null) { return prepstmt.executeQuery(); } else return null; } public void executeUpdate() throws SQLException { if (this.prepstmt != null) this.prepstmt.executeUpdate(); } public void executeBatch() throws SQLException { if (this.prepstmt != null) this.prepstmt.executeBatch(); } public void clearParameters()throws SQLException { prepstmt.clearParameters(); prepstmt=null; } public PreparedStatement PreparedStatements(String sql,int iType) { setStmtPrep(sql,iType); return prepstmt; } public Statement getStatement() { return stmt; } public boolean prepareCall(String process){ //throws Exception boolean isSuccess = false; //String procedure = "{call p_test2 (?) }"; //String procedure = "{call "+process+" }"; String procedure = "{select "+process+"}"; System.out.print(procedure); try{ CallableStatement cstmt = this.conn.prepareCall(procedure); cstmt.setString(1,"dddddd"); cstmt.setString(2,"ffffff"); cstmt.executeUpdate(); //rs = cstmt.executeQuery(); isSuccess = true; }catch(SQLException e){ e.printStackTrace(); } return isSuccess; } public void setString(int index,String value) throws SQLException { prepstmt.setString(index, value); } public void setInt(int index,int value) throws SQLException { prepstmt.setInt(index,value); } public void setBoolean(int index,boolean value) throws SQLException { prepstmt.setBoolean(index,value); } public void setDate(int index,java.sql.Date value) throws SQLException { prepstmt.setDate(index,value); } public void setLong(int index,long value) throws SQLException { prepstmt.setLong(index,value); } public void setFloat(int index,float value) throws SQLException { prepstmt.setFloat(index,value); } public void setBytes(int index,byte[] value) throws SQLException{ prepstmt.setBytes(index,value); } public void addBatch() throws SQLException{ prepstmt.addBatch(); } public boolean Transaction(String sql){ //throws Exception boolean isSuccess = false; try{ this.prepstmt = this.conn.prepareStatement(sql); }catch(SQLException e){ e.printStackTrace(); } /*........................ connection.beginTransaction(); try{ connection.commit(); }catch(SQLException e) { connection.rollback(); e.printStackTrace(); } ....................... */ return isSuccess; } public void close() throws Exception{ if (this.rs != null) { this.rs.close(); this.rs = null; } if (this.stmt != null) { this.stmt.close(); this.stmt = null; } if (this.prepstmt != null) { this.prepstmt.close(); this.prepstmt = null; } if (conn!=null){ dcm.freeConnection(this.odbc,conn); } System.out.println("归还数据库连接池"); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -