1.下载PostgreSQL JDBC驱动:

http://jdbc.postgresql.org/download.html

2. 新建一个java项目,导入下载的jar包Add External JARs

3. 连接代码如下:

import java.sql.*;
import java.io.*;
import java.util.StringTokenizer;
import java.util.Properties;
import java.util.Random; /**
* Class <b>DBWrapper</b> contains
* wrapper routines for using JDBC
* to access the database.
*
* @author luwei
* @version 1.0
*/
public class DBWrapper
{ private static int CONNECTION_RETRIES = 10;
private static int QUERY_RETRIES = 10; private String dbUrl;
private String username;
private String password;
private String jdbcClassName;
private Connection dbCon; private boolean hasError = false;
private String errorString = null;
private static DBWrapper myInstance = null; /**
* DBWrapper constructor
*/
public DBWrapper() {} /**
* DBWrapper conscrutor
* @param inUrl String url of database
* @param inJdbcClassName String containing name of jdbc driver
* @param inUserName String containing database username
* @param inPassWord String containing database password
*/ public DBWrapper( String inUrl, String inJdbcClassName, String inUserName, String inPassWord )
throws Exception {
dbUrl = inUrl;
jdbcClassName = inJdbcClassName;
username = inUserName;
password = inPassWord;
connect();
} /**
* connectAsDefaultCteLibrary()
* Create a connection to the CTE library using the default connection parameters.
* @return void
*/
public void connectAsDefaultDatabase()
throws Exception {
myInstance.connect("jdbc:postgresql://localhost:5432/postgres",
"org.postgresql.Driver", "postgres", "741613551"); } /**
* closeConnections closes any currently open connections
* @return void
*/
private void closeConnections()
throws Exception {
if (dbCon!=null) {
dbCon.close();
}
} /**
* DBWrapper Instance()
* Get a singleton instance of the DBWrapper object.
* @return DBWrapper
*/
public static DBWrapper Instance()
throws Exception {
if (myInstance == null) {
myInstance = new DBWrapper();
myInstance.connectAsDefaultDatabase();
}
return myInstance;
} /**
* boolean connect()
* Connect to a database using the parameters supplied in the constructor.
* @return boolean
*/
private boolean connect()
throws Exception { boolean opened = false; DriverManager.registerDriver(new org.postgresql.Driver());
// Try to open a connection the database.
int retry = 0;
while(retry++ < CONNECTION_RETRIES){
Class.forName(jdbcClassName);
dbCon = DriverManager.getConnection(dbUrl,username,password);
break;
}
if(retry < CONNECTION_RETRIES)opened=true;
return opened;
} /**
* boolean connect()
* Connect to a JDBC datasource without using the parameters supplied in the constructor.
* @param inUrl String url of database
* @param inJdbcClassName String containing name of jdbc driver
* @param inUserName String containing database username
* @param inPassWord String containing database password
* @return boolean
*/
public boolean connect( String inUrl, String inJdbcClassName, String inUserName, String inPassWord )
throws Exception {
dbUrl = inUrl;
jdbcClassName = inJdbcClassName;
username = inUserName;
password = inPassWord;
closeConnections(); return connect();
} /**
* ResultSet runQuery()
* Executes a query and returns a resultset.
*
* @param String containing a SQL statement
* @return ResultSet
*/
public ResultSet runQuery( String sqlQuery )
throws Exception {
Statement statement=dbCon.createStatement();
ResultSet resultSet=statement.executeQuery(sqlQuery);
return resultSet;
} /**
* boolean runUpdate()
* Executes an update and returns true of successfully executed.
*
* @param String containing a SQL statement
* @return boolean
*/
public boolean runUpdate( String sqlQuery )
throws Exception {
Statement ps=dbCon.createStatement();
boolean wasExecuted = false;
int retry = 0;
while(retry++ < CONNECTION_RETRIES){
ps.executeUpdate(sqlQuery);
break;
}
if(retry < CONNECTION_RETRIES)wasExecuted=true; return wasExecuted;
} /**
* ResultSet runChainedQuery()
* Executes a chained mode transaction query.
*
* @param <b>String</b> containing a SQL statement
* @param <b>String</b> containing the isolation level to run the transaction.
* @return ResultSet
*/
public ResultSet runChainedQuery( String sqlQuery, String isolationLevel )
throws Exception { 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++ < QUERY_RETRIES) {
// Begin a transaction.
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;
}
return resultSet;
} /**
* boolean runChainedUpdate()
* Executes a chained mode transaction query.
*
* @param String[] containing a series of SQL statments
* @param String containing the isolation level to run the transaction.
* @return boolean
*/
public boolean runChainedUpdate( String [] sqlQuery, String isolationLevel )
throws Exception {
int retry = 0; // Create the statement object.
Statement dbStatement = null;
boolean wasExecuted = false;
// Connect to the database.
dbStatement = dbCon.createStatement(); while (retry++ < QUERY_RETRIES) {
// Begin a new transaction.
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<sqlQuery.length; 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();
}
}
return wasExecuted;
}
}

4. 测试代码

import java.sql.*;

public class DBConnectionTest {
public static void main(String[] args) {
/*
* if(args.length < 3){
* System.out.println("Syntax:DBConnection [url][username][password]");
* //url = jdbc:postgresql:database or
* jdbc:postgresql://host:port/database System.exit(-1); }
*/ String url = "jdbc:postgresql://localhost:5432/postgres";
String username = "postgres";
String password = "741613551";
String sql = "select sName from student";
String s; try {
System.out.println("Step 01: Registering JDBC Driver"); /* There are three ways to registe driver. */
// write your code here for Registering JDBC Driver
// 先注册JDBC驱动 org.postgresql.Driver
Class.forName("org.postgresql.Driver");
System.out.println("Step 02: Establishing connection to: \n\t"
+ url); // write your code here to get a connection
// url = jdbc:postgresql:database or
// jdbc:postgresql://host:port/database
Connection conn = DriverManager.getConnection(url, username,
password);
System.out.println("Step 03: Creating SQL statement."); // write your code here to create a SQL statement
Statement state = conn.createStatement();
System.out.println("Step 04: Executing SQL statement."); // write your code here to execute your SQL statement and recieve
// the result
ResultSet resultSet = state.executeQuery(sql);
System.out.println("Step 05: Printing result."); // write your code here to print the result
while (resultSet.next()) {
System.out.println(resultSet.getString("sName"));
}
System.out.println("Step 06: Closing JDBC objects."); // write your code here to close all JDBC objects. resultSet.close();
state.close();
conn.close();
System.out.println("End.");
} catch (Exception e) {
System.out.println(e);
}
}
}

5. JDBC教程:http://www.yiibai.com/jdbc/jdbc-introduction.html

postgreSQL连接 java接口的更多相关文章

  1. java接口调用——webservice就是一个RPC而已

    很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...

  2. python面向对象进阶 反射 单例模式 以及python实现类似java接口功能

    本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...

  3. OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用OpenCV的示例

    转自:  http://blog.csdn.net/yanzi1225627/article/details/16917961 开发环境:windows+ADT Bundle+CDT+OpenCV-2 ...

  4. 十分钟搭建redis单机版 & java接口调用

    本次单机版redis服务器搭建采用的包为redis-3.0.0.tar.gz,主要是记录下安装的心得,不喜勿喷! 一.搭建redis服务器单机版 1.上传redis-3.0.0.tar.gz到服务器上 ...

  5. Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  6. 使用swig将C/C++代码转为JAVA接口(Windows平台)

    小弟一直没用过Linux. 平时的码也只是在WINDOW上用SWIG或CYGWIN进行编译. 下面的例子,先从网上找来一个.c文件. example.c /* File : example.c */ ...

  7. Java-Runoob-面向对象:Java 接口

    ylbtech-Java-Runoob-面向对象:Java 接口 1.返回顶部 1. Java 接口 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以 ...

  8. jmeter使用BeanShell Sampler测试自己写的java接口(一)

    上次直接使用jmeter里面的FTPsampler没有连接成功 现在想着自己写java代码,通过jmeter进行调用进行连接测试实现并发 代码引文: http://www.cnblogs.com/ch ...

  9. Java接口对Hadoop集群的操作

    Java接口对Hadoop集群的操作 首先要有一个配置好的Hadoop集群 这里是我在SSM框架搭建的项目的测试类中实现的 一.windows下配置环境变量 下载文件并解压到C盘或者其他目录. 链接: ...

随机推荐

  1. SpringMVC系列(二): SpringMVC各个注解的使用

    1.@RequestMapping 1.@RequestMapping除了能修饰方法,还能修饰类(1)修饰类:提供初步的请求映射信息,相对于web请求的根目录(2)修饰方法:提供进一步的细分映射信息相 ...

  2. e834. 设置JTabbedPane中卡片的位置

    The tabs of a tabbed pane can be placed on one of the four edges of its container. By default, when ...

  3. AWT控件称为重量级控件

    AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口. AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的 ...

  4. Swing用户界面开发工具包开发记录

    Swing是一个用于开发Java应用程序用户界面的开发工具包. 以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格. Swing开发人员只用很少的代码就可以利用Swing丰富 ...

  5. R语言 vegan包计算物种累计曲线

    vegan 包是进行群落数据分析最常用的R包,其中的 specaccum 函数用来计算物种的累计曲线 首先看下官方示例: library(vegan) data(BCI) sp1 <- spec ...

  6. laravel-第一課安裝

    本地安装laravel,php环境要配置好,推荐xmapp一键搭建. 1.程序包直接从官方下载,官方开源地址:https://github.com/laravel/laravel(当然也可从此网站:h ...

  7. AOP-配合slf4j打印日志

    基本思想 凡在目标实例上或在目标实例方法(非静态方法)上标注自定义注解@AutoLog,其方法执行时将触发AOP操作: @AutoLog只有一个参数,用来控制是否打印该方法的参数和返回结果的json字 ...

  8. 自定义控件?试试300行代码实现QQ侧滑菜单

    Android自定义控件并没有什么捷径可走,需要不断得模仿练习才能出师.这其中进行模仿练习的demo的选择是至关重要的,最优选择莫过于官方的控件了,但是官方控件动辄就是几千行代码往往可能容易让人望而却 ...

  9. [Learn AF3]第三章 App Framework 3组件之Panel:afui的核心

    Panel,afui的核心组件 组件名称:Panel     使用说明:按照官方的说法,panel组件是af3的“核心(heart of the ui)”,panel用于构造应用中独立的内容展示区域, ...

  10. 如何在IntelliJ IDEA中快速配置Tomcat

    近来使用idea编写java代码的人越来越多,最关键的就是idea强大的代码提示功能,能极高的提升程序员的开发效率,但是毕竟各有所长,idea中tomcat的配置就没有eclipse那么轻松,这里简单 ...