`
xurichusheng
  • 浏览: 346264 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JDBC公共操作方法(二):获取数据库连接 Connection

 
阅读更多

1. 获取数据库连接

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.log4j.Logger;

public final class JDBCUtil {

	private static final Logger LOG = Logger.getLogger(JDBCUtil.class);

	//使用ThreadLocal保存Connection
	private static ThreadLocal<Connection> local = new ThreadLocal<Connection>();

	private static JDBCUtil instance = new JDBCUtil();

	private JDBCUtil() {
	}

	public static JDBCUtil getInstance() {
		return instance;
	}

	/**
	 * @Title: getConnection
	 * @Description: 获取数据库连接
	 * @return Connection
	 * @author
	 * @date 2011-12-29
	 */
	public static Connection getConnection() {

		// 获取jdbc.properties中配置的key-value
		ParseSqlPropertiesFile.getInstance().getJDBCConfig();

		String driverClass = JDBCConstants.jdbcMap.get("jdbc.driverclass");
		String url = JDBCConstants.jdbcMap.get("jdbc.url");
		String user = JDBCConstants.jdbcMap.get("jdbc.username");
		String password = JDBCConstants.jdbcMap.get("jdbc.password");

		// 记录连接属性日志
		LogJDBCProperties.getInstance().logConnectionProperty(driverClass, url,
				user, password);

		Connection connection = null;

		try {
			Class.forName(driverClass);
		} catch (ClassNotFoundException e) {
			LOG.error("can not find class:'" + driverClass + "'", e);
			return connection;
		} catch (Exception e) {
			LOG.error("load driverClass faile!", e);
			return connection;
		}

		try {
			connection = DriverManager.getConnection(url, user, password);
			
			if (null == local.get()) {
				local.set(connection);
			}
		} catch (SQLException e) {
			LOG.error("get connection faile!", e);
		} catch (Exception e) {
			LOG.error("get connection faile!", e);
		}
		return local.get();
	}

	/**
	 * @Title: close
	 * @Description: 关闭与数据库的连接
	 * @param conn
	 * @param rs
	 * @param s
	 * @author
	 * @date 2011-12-29
	 */
	public static void close(Connection conn, ResultSet rs, Statement s) {

		if (null != rs) {
			try {
				rs.close();
			} catch (SQLException e) {
				LOG.error("close ResultSet faile!", e);
			}
		}
		if (null != s) {
			try {
				s.close();
			} catch (SQLException e) {
				LOG.error("close Statement faile!", e);
			}
		}
		if (null != conn) {
			try {
				conn.close();
			} catch (SQLException e) {
				LOG.error("close Connection faile!", e);
			}
		}
	}

	public static void rollback(Connection connection) {

		if (null != connection) {
			try {
				connection.rollback();
			} catch (SQLException e) {
				LOG.error("connection rollback faile!", e);
			}
		}
	}

	/*
	 * public static void main(String[] args) {
	 * 
	 * Connection connection = JDBCUtil.getInstance().getConnection();
	 * 
	 * if (null != connection) { boolean isClose = true; try { isClose =
	 * connection.isClosed(); } catch (SQLException e) { e.printStackTrace(); }
	 * if (isClose) { System.out.println("can not connect to database."); } else
	 * { System.out.println("connect to database success."); } } else {
	 * System.out .println("connection is null,can not connect to database."); }
	 * close(connection,null,null); }
	 */
}
 
分享到:
评论

相关推荐

    java程序设计及应用课程中数据库的作业

    实现对数据库Test中Student表的查询操作,定义一个数据库操作类JdbcAccess,在该类中定义三个方法: (1)getConnection():实现数据库的连接; (2)getStudent():根据指定的学号,查询该学生的信息; (3)...

    Java语言SQL接口 JDBC编程技术

    - 获取连接:通过DriverManager.getConnection()方法,传入JDBC URL、用户名和密码。 - 创建Statement或PreparedStatement对象。 - 执行SQL:调用Statement或PreparedStatement的executeQuery()或executeUpdate()...

    达梦数据库jdbc连接

    除了基本的JDBC操作,达梦数据库还提供了诸如事务管理、预编译语句、批处理等功能,这些都可以通过JDBC接口进行操作。在实际开发中,为了提高代码的可读性和可维护性,可以考虑使用ORM框架(如MyBatis或Hibernate)...

    JDBC连接数据库步骤及代码

    #### 二、JDBC连接数据库步骤 ##### 1. 导入必要的JDBC驱动包 在使用JDBC连接Oracle数据库之前,首先需要下载并导入Oracle官方提供的JDBC驱动包。这里使用的是`ojdbc6-11.2.0.2.0.jar`。该驱动包可以通过Oracle...

    JDBC不同数据库连接

    #### 二、JDBC 连接数据库的基本步骤 1. **加载驱动程序**:通过 `Class.forName()` 方法来加载相应的 JDBC 驱动。 2. **建立连接**:利用 DriverManager 的 `getConnection()` 方法建立到数据库的连接。 3. **执行...

    jdbc连接不同数据库方法

    标题中的“jdbc连接不同数据库方法”指的是使用Java Database Connectivity (JDBC) API来与不同的数据库进行交互的方法。JDBC是Java平台中用于访问数据库的标准Java API,它允许开发者执行SQL语句并处理结果。 在...

    JDBC公共操作方法代码

    这篇名为“JDBC公共操作方法代码”的博客文章可能详细介绍了如何使用JDBC进行常见的数据库操作。下面我们将深入探讨JDBC的关键知识点。 首先,JDBC连接数据库的步骤通常包括以下几个部分: 1. 导入JDBC驱动:在...

    JDBC连接数据库各种数据库参数大全

    - **获取连接**:`Connection conn=DriverManager.getConnection(url,user,password);` - 使用`DriverManager`类的`getConnection`方法来建立与数据库的连接。需要提供数据库的URL、用户名以及密码作为参数。 ####...

    JDBC 连接到 PostgreSQL 数据库获取数据简单例子

    本示例将详细介绍如何使用JDBC连接到PostgreSQL数据库并执行简单的数据获取操作。PostgreSQL是一种开源的对象关系型数据库管理系统,因其强大的功能和稳定性而广受欢迎。 首先,确保已安装PostgreSQL数据库并在系统...

    JDBC数据库连接操作_jdbc_数据库_

    三、JDBC操作步骤 1. 加载驱动:通过Class.forName()方法加载数据库驱动。 2. 获取连接:使用DriverManager.getConnection()方法,传入数据库URL、用户名和密码创建连接。 3. 创建Statement:根据需求选择Statement...

    jdbc连接数据库步骤

    JDBC(Java Database Connectivity)是Java语言中用于连接和操作数据库的应用程序接口。它定义了Java应用程序如何与数据库之间通信,允许用户执行SQL语句并获取结果。对于初学者来说,理解JDBC连接数据库的基本步骤...

    实验3 JDBC操作数据库3

    实验3 JDBC操作数据库3主要目的是通过Java的JDBC技术来熟悉和掌握数据库的连接与操作。这个实验涉及了以下几个核心知识点: 1. **MySQL数据库**:实验中提到了使用MySQL作为关系型数据库管理系统,它是开源且广泛...

    jdbc数据库连接 模板代码

    2. **建立与数据库的连接**:一旦驱动程序被注册,就可以通过`DriverManager.getConnection()`方法建立数据库连接。这通常需要提供数据库URL、用户名和密码。 ```java Connection con = DriverManager.get...

    jdbc各种数据库连接

    ### JDBC与多种数据库连接详解 在Java开发领域中,JDBC(Java Database Connectivity)是一种用于执行SQL语句的标准Java API,它可以为多种关系数据库提供统一访问接口,这使得Java应用程序可以方便地与不同类型的...

    工厂模式获取jdbc连接并进行操作

    在获取JDBC连接的场景中,我们可以创建一个抽象的`DatabaseConnectionFactory`,它声明一个返回`Connection`的方法。然后针对不同的数据库(如MySQL、Oracle等),我们创建各自的实现类,覆盖这个方法以返回相应的...

    jdbc连接各种数据库方式

    在Java编程中,JDBC(Java Database ...通过对比不同数据库的JDBC连接方法,可以更好地理解和适应不同数据库系统的特性和要求。在实际开发中,合理使用JDBC连接池如HikariCP、C3P0等还能提高性能和资源管理效率。

    数据库JDBC连接.txt

    JDBC为数据库开发人员提供了一种标准的方法来连接各种类型的数据库,包括关系型数据库如MySQL、Oracle等。 #### 二、JDBC配置参数详解 在给定的文件内容中,提到了多种数据库的JDBC连接方式及配置参数,下面将对...

    JDBC连接数据库里面有各数据库的应用说明

    `DriverManager`提供了几个不同的方法来获取连接: 1. `getConnection(String url)`: - 接收一个URL字符串作为参数,返回一个`Connection`对象。 - 示例:`DriverManager.getConnection("jdbc:oracle:thin:@192....

    JDBC数据库连接测试

    2. **获取连接**:通过`DriverManager.getConnection()`方法,传入数据库URL、用户名和密码来创建数据库连接。 3. **创建Statement对象**:使用Connection对象的`createStatement()`方法创建Statement对象,用于执行...

Global site tag (gtag.js) - Google Analytics