`
神奇九寨沟
  • 浏览: 35363 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

JDBC连接数据库

    博客分类:
  • jdbc
阅读更多
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 driver;
private static String url;
private static String user;
private static String pwd;

// 获得数据库连接
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);
}

// 用静态模块给连接变量赋值
static{
 
// 方法1,properties对象直接调用方法,取默认值
Properties prop = new Properties();
// 方法2,Properties对象通过流加载外部文件--------------------------
// 方法2.1  InputStream is = DbConnInfo.class.getResourceAsStream("InfoConnection.properties"); //该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();
}
}
}
}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics