📄 dbconnect.java
字号:
package com.hrsoft.db;
import java.sql.*;
import java.util.*;
import java.io.*;
public class DBConnect{
// implements Database
private Connection conn = null;
private Statement stmt = null;
private PreparedStatement prepstmt = null;
private ResultSet rs = 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 DBConnect() {
init("jdbc");
this.odbc = "jdbc";
}
public DBConnect(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){
ResultSetMetaData rsmd = null;
try{
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) {
try{
this.close();
e.printStackTrace(); }catch(Exception ex){
System.out.println("Ex:" + ex.getMessage());
}
}
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) {
try{
this.close();
}catch(Exception ex){
System.out.println("异常(Conn.close):" + ex.getMessage());
}
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 getPreparedStatement() {
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 + -