java 连接 postgresql_postgreSQL连接 java接口

import java.sql.*;import java.io.*;importjava.util.StringTokenizer;importjava.util.Properties;importjava.util.Random;/*** Class DBWrapper contains

* wrapper routines for using JDBC

* to access the database.

*

*@authorluwei

*@version1.0*/

public classDBWrapper

{private static int CONNECTION_RETRIES = 10;private static int QUERY_RETRIES = 10;privateString dbUrl;privateString username;privateString password;privateString jdbcClassName;privateConnection dbCon;private boolean hasError = false;private String errorString = null;private static DBWrapper myInstance = null;/*** DBWrapper constructor*/

publicDBWrapper() {}/*** DBWrapper conscrutor

*@paraminUrl String url of database

*@paraminJdbcClassName String containing name of jdbc driver

*@paraminUserName String containing database username

*@paraminPassWord String containing database password*/

publicDBWrapper( String inUrl, String inJdbcClassName, String inUserName, String inPassWord )throwsException {

dbUrl=inUrl;

jdbcClassName=inJdbcClassName;

username=inUserName;

password=inPassWord;

connect();

}/*** connectAsDefaultCteLibrary()

* Create a connection to the CTE library using the default connection parameters.

*@returnvoid*/

public voidconnectAsDefaultDatabase()throwsException {

myInstance.connect("jdbc:postgresql://localhost:5432/postgres","org.postgresql.Driver", "postgres", "741613551");

}/*** closeConnections closes any currently open connections

*@returnvoid*/

private voidcloseConnections()throwsException {if (dbCon!=null) {

dbCon.close();

}

}/*** DBWrapper Instance()

* Get a singleton instance of the DBWrapper object.

*@returnDBWrapper*/

public staticDBWrapper Instance()throwsException {if (myInstance == null) {

myInstance= newDBWrapper();

myInstance.connectAsDefaultDatabase();

}returnmyInstance;

}/*** boolean connect()

* Connect to a database using the parameters supplied in the constructor.

*@returnboolean*/

private booleanconnect()throwsException {boolean opened = false;

DriverManager.registerDriver(neworg.postgresql.Driver());//Try to open a connection the database.

int retry = 0;while(retry++

Class.forName(jdbcClassName);

dbCon=DriverManager.getConnection(dbUrl,username,password);break;

}if(retry < CONNECTION_RETRIES)opened=true;returnopened;

}/*** boolean connect()

* Connect to a JDBC datasource without using the parameters supplied in the constructor.

*@paraminUrl String url of database

*@paraminJdbcClassName String containing name of jdbc driver

*@paraminUserName String containing database username

*@paraminPassWord String containing database password

*@returnboolean*/

public booleanconnect( String inUrl, String inJdbcClassName, String inUserName, String inPassWord )throwsException {

dbUrl=inUrl;

jdbcClassName=inJdbcClassName;

username=inUserName;

password=inPassWord;

closeConnections();returnconnect();

}/*** ResultSet runQuery()

* Executes a query and returns a resultset.

*

*@paramString containing a SQL statement

*@returnResultSet*/

publicResultSet runQuery( String sqlQuery )throwsException {

Statement statement=dbCon.createStatement();

ResultSet resultSet=statement.executeQuery(sqlQuery);returnresultSet;

}/*** boolean runUpdate()

* Executes an update and returns true of successfully executed.

*

*@paramString containing a SQL statement

*@returnboolean*/

public booleanrunUpdate( String sqlQuery )throwsException {

Statement ps=dbCon.createStatement();boolean wasExecuted = false;int retry = 0;while(retry++

ps.executeUpdate(sqlQuery);break;

}if(retry < CONNECTION_RETRIES)wasExecuted=true;returnwasExecuted;

}/*** ResultSet runChainedQuery()

* Executes a chained mode transaction query.

*

*@paramString containing a SQL statement

*@paramString containing the isolation level to run the transaction.

*@returnResultSet*/

publicResultSet runChainedQuery( String sqlQuery, String isolationLevel )throwsException {int retry = 0;//Create the resultset and statement object.

ResultSet resultSet = null;

Statement dbStatement= null;//Connect to the database.

dbStatement =dbCon.createStatement();//Retry the query until complete or timeout.

while (retry++

dbStatement.executeUpdate( "Begin Transaction");//Set the isolation level.

dbStatement.executeUpdate( new String( "Set Transaction Isolation level " +isolationLevel ) );//Execute the query.

resultSet =dbStatement.executeQuery( sqlQuery );//Commit the transaction.

dbStatement.executeUpdate( "commit");//Close the connection.

dbStatement.close();break;

}returnresultSet;

}/*** boolean runChainedUpdate()

* Executes a chained mode transaction query.

*

*@paramString[] containing a series of SQL statments

*@paramString containing the isolation level to run the transaction.

*@returnboolean*/

public booleanrunChainedUpdate( String [] sqlQuery, String isolationLevel )throwsException {int retry = 0;//Create the statement object.

Statement dbStatement = null;boolean wasExecuted = false;//Connect to the database.

dbStatement =dbCon.createStatement();while (retry++

try{

dbStatement.executeUpdate("Begin Transaction");//Set the isolation level.

dbStatement.executeUpdate( new String( "Set Transaction Isolation level " +isolationLevel ) );//For each sql statement, perform the update.

for( int i=0; i

dbStatement.executeUpdate( sqlQuery[i] );

}//Commit the transaction and close.

dbStatement.executeUpdate( "commit");

dbStatement.close();

wasExecuted= true;

}catch(Exception e) {

errorString= new String( "Error executing: " + sqlQuery + "\nCause: " +e.toString() );

hasError= true;//Rollback if an error has occured.

dbStatement.executeUpdate( "rollback");

dbStatement.close();

}

}returnwasExecuted;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值