1.package com.jdbc.conn.db;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
public class DbConnInfo {
// 定义数据库驱动,地址,用户名,密码等连接变量
private static String [color=red]driver[/color];
private static String [color=red]url[/color];
private static String [color=red]user[/color];
private static String [color=red]pwd[/color];
// 获得数据库连接
public static Connection getConnection(){
return DbConnLoad.getConnection(driver, url, user, pwd);
}
//关闭连接
public static void close(Connection conn){
DbConnLoad.close(conn);
}
// 关闭语句
public static void close(Statement stmt){
DbConnLoad.close(stmt);
}
// 关闭结果集
public static void close(ResultSet rs){
DbConnLoad.close(rs);
}
// 用静态模块给连接变量赋值
[color=red]static{[/color]
// 方法1,properties对象直接调用方法,取默认值
Properties prop = new Properties();
// 方法2,Properties对象通过流加载外部文件--------------------------
// 方法2.1 InputStream is = DbConnInfo.class.getResourceAsStream("[color=red]InfoConnection.properties[/color]"); //该properties文件在工程的classpath下
// 方法2.2
File f = new File("InfoConnection.properties");
try {
FileInputStream is = new FileInputStream(f);
prop.load(is);
driver = prop.getProperty("info.driver", "默认驱动");
url = prop.getProperty("info.url", "默认地址");
user = prop.getProperty("info.user", "默认用户名");
pwd = prop.getProperty("info.pwd", "默认密码");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.0
package com.jdbc.conn.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DbConnLoad {
/**
* 获取数据库链接
* @param driver 驱动类名
* @param url 数据库链接URL
* @param user 用户名
* @param pwd 密码
* @return 如果成功 返回数据库链接,否则返回null.
*/
public static Connection getConnection(String driver, String url, String user, String pwd){
Connection conn = null;
try {
Class.forName(driver);
DriverManager.setLoginTimeout(40); //40秒连不上数据库则放弃
conn = DriverManager.getConnection(url, user, pwd);
conn.setAutoCommit(false);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
conn = null;
}
return conn;
}
/**
* 关闭数据库连接
*/
public static void close(Connection conn){
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 关闭语句
* @param st
*/
public static void close(Statement st){
if(st != null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 关闭结果集
* @param rs
*/
public static void close(ResultSet rs){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
3.0
package com.jdbc.conn.db;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DbConnTest {
public static void main(String args[])
{
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String sql = "SELECT * FROM DIM_USER";
conn = DbConnInfo.getConnection();
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(2));
}
// 在这加上显得更安全,当然不关也可以,因为finally里面也关了
// System.out.println(conn.isClosed());
rs.close();
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
finally{
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
// 也可以直接调用方法关,和直接关 效果上是一样的
DbConnInfo.close(conn);
try {
System.out.println(conn.isClosed());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
public class DbConnInfo {
// 定义数据库驱动,地址,用户名,密码等连接变量
private static String [color=red]driver[/color];
private static String [color=red]url[/color];
private static String [color=red]user[/color];
private static String [color=red]pwd[/color];
// 获得数据库连接
public static Connection getConnection(){
return DbConnLoad.getConnection(driver, url, user, pwd);
}
//关闭连接
public static void close(Connection conn){
DbConnLoad.close(conn);
}
// 关闭语句
public static void close(Statement stmt){
DbConnLoad.close(stmt);
}
// 关闭结果集
public static void close(ResultSet rs){
DbConnLoad.close(rs);
}
// 用静态模块给连接变量赋值
[color=red]static{[/color]
// 方法1,properties对象直接调用方法,取默认值
Properties prop = new Properties();
// 方法2,Properties对象通过流加载外部文件--------------------------
// 方法2.1 InputStream is = DbConnInfo.class.getResourceAsStream("[color=red]InfoConnection.properties[/color]"); //该properties文件在工程的classpath下
// 方法2.2
File f = new File("InfoConnection.properties");
try {
FileInputStream is = new FileInputStream(f);
prop.load(is);
driver = prop.getProperty("info.driver", "默认驱动");
url = prop.getProperty("info.url", "默认地址");
user = prop.getProperty("info.user", "默认用户名");
pwd = prop.getProperty("info.pwd", "默认密码");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.0
package com.jdbc.conn.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DbConnLoad {
/**
* 获取数据库链接
* @param driver 驱动类名
* @param url 数据库链接URL
* @param user 用户名
* @param pwd 密码
* @return 如果成功 返回数据库链接,否则返回null.
*/
public static Connection getConnection(String driver, String url, String user, String pwd){
Connection conn = null;
try {
Class.forName(driver);
DriverManager.setLoginTimeout(40); //40秒连不上数据库则放弃
conn = DriverManager.getConnection(url, user, pwd);
conn.setAutoCommit(false);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
conn = null;
}
return conn;
}
/**
* 关闭数据库连接
*/
public static void close(Connection conn){
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 关闭语句
* @param st
*/
public static void close(Statement st){
if(st != null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 关闭结果集
* @param rs
*/
public static void close(ResultSet rs){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
3.0
package com.jdbc.conn.db;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DbConnTest {
public static void main(String args[])
{
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String sql = "SELECT * FROM DIM_USER";
conn = DbConnInfo.getConnection();
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(2));
}
// 在这加上显得更安全,当然不关也可以,因为finally里面也关了
// System.out.println(conn.isClosed());
rs.close();
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
finally{
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
// 也可以直接调用方法关,和直接关 效果上是一样的
DbConnInfo.close(conn);
try {
System.out.println(conn.isClosed());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}