`
xiaoban0514
  • 浏览: 16602 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

工具类-JDBC连接

阅读更多
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * DBPool.java
 * utils class
 * @author fanfq
 * @version 1.0  2009-6-4
 * */
public class DBPool {
	
	private static DBPool instance = null;
	private static Connection conn = null;
	private static Statement stmt = null;
	private static ResultSet rs = null;
	private static int count = 0;
	
	/**私有的构造方法*/
	private DBPool(){
		super();
	}
	
	/**形成同步保证多线程访问只有一个实例*/
	private static synchronized Connection getConnection() {
		if(instance == null){
			instance = new DBPool();
		}
		return instance._getConnection();
	}
	
	/**私有的数据源配置*/
	private Connection _getConnection(){
		try{
			String sDBDriver = null;
			String sConnection = null;
			String sUser  = null;
			String sPassword = null;
			
			Properties p = new Properties();
			InputStream is = getClass().getResourceAsStream("/db.properties");
			p.load(is);
			
			sDBDriver = p.getProperty("DBDriver", sDBDriver);
			sConnection = p.getProperty("Connection",sConnection);
			sUser = p.getProperty("User",sUser);
			sPassword = p.getProperty("Password",sPassword);
			
			Properties pr = new Properties();
			pr.put("user", sUser);
			pr.put("password", sPassword);
			pr.put("characterEncoding", "GB2312");
			pr.put("useUnicode", "TRUE");
			
			Class.forName(sDBDriver).newInstance();
			return DriverManager.getConnection(sConnection,pr);
			
		}catch(Exception e){
			e.printStackTrace();
			return null;
		}
	}
	
	/**关闭数据库连接*/
	public static synchronized void closeConnection(){
		try{
			if (rs != null) {
				rs.close();
				rs = null;
			}
			if (stmt != null) {
				stmt.close();
				stmt = null;
			}
			if (conn != null) {
				conn.close();
				conn = null;
			}
		}catch(SQLException exp){
			exp.printStackTrace();
		}
	}
	
	/**获得Statement*/
	@SuppressWarnings("finally")
	private static Statement getStatement(){
		if(null == conn){
			conn = getConnection();
		}
		try {
			stmt = conn.createStatement();			
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			return stmt;
		}
	}	

	/**执行常用查询语句专用*/
	@SuppressWarnings("finally")
	public static ResultSet exeQuery(String sql){
		if(null == stmt){
			getStatement();
		}
		try {
			rs = stmt.executeQuery(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			return rs;
		}
	}
	
	/**执行特殊SQL语句专用*/
	public static void exeSQL(String sql){
		if(null == stmt){
			getStatement();
		}
		try {
			stmt.execute(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	/**执行update,inster,delete语句专用*/
	@SuppressWarnings("finally")
	public static int exeUpdate(String sql){
		if(null == stmt){
			getStatement();
		}
		try {
			count = stmt.executeUpdate(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			return count;
		}
	}
	

	//测试	
//	public static void main(String[] args){
//		
//		String sql = "SELECT * FROM dept";
//		ResultSet rss = exeQuery(sql);
//		try {
//			while(rss.next()){
//					System.out.println(rss.getInt(1) + " " + rss.getString(2)+" "+ rss.getString(3) + " " + rss.getInt(4) );
//				
//			}
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		closeConnection();
//		
//	}

}

 

 

#db.properties
#author fanfq 
DBDriver=jdbcDirver
Connection=URL
User=userName
Password=password

 

分享到:
评论

相关推荐

    polardb-jdbc18.zip

    在Java项目中,需要将`polardb-jdbc18.jar`添加到类路径或者Maven/Gradle等构建工具的依赖库中。 3.2 建立连接 使用`java.sql.DriverManager.getConnection()`方法建立与PolarDB的连接,传入相应的URL、用户名和...

    hive驱动包hive-jdbc-uber-2.6.5.0-292.jar(用户客户端连接使用)

    Hive JDBC驱动是Hive与各种数据库管理工具、应用程序之间建立连接的关键组件,使得用户可以通过标准的JDBC接口来访问和操作Hive中的数据。 标题中的"**hive-jdbc-uber-2.6.5.0-292.jar**"是一个Uber(也称为Shaded...

    ha-jdbc.rar

    在实际应用中,使用ha-jdbc时,开发者需要将ha-jdbc.jar添加到项目的类路径中,并在JDBC连接字符串中指定ha-jdbc的相关配置。这些配置可能包括数据库地址、端口、用户名、密码,以及ha-jdbc特有的设置,如心跳检测...

    hive-jdbc-1.1.0-cdh5.12.1 连接库 jar包

    2. 创建一个JDBC连接字符串,格式通常为`jdbc:hive2://<HIVESERVER>:<PORT>/<DATABASE>`, 其中 `<HIVESERVER>` 是Hive服务器的地址,`<PORT>` 是Hive Thrift服务器监听的端口,`<DATABASE>` 是默认数据库名称。...

    hive-jdbc-jar-多版本.zip

    它提供了标准的JDBC接口,使得任何支持JDBC的应用程序,如Java应用或BI工具,都可以方便地连接到Hive执行SQL查询。"hive-jdbc-jar-多版本.zip"是一个压缩包,包含了不同版本的Hive JDBC Uber Jars,覆盖了从1.5到1.8...

    hive-jdbc-uber-3.1.2+yanagishima-18.0

    在Kerberos环境中使用Hive JDBC,需要配置相应的安全设置,如获取Kerberos票据并将其嵌入到JDBC连接中,以实现安全的数据访问。 Yanagishima(やなぎしマ)是另一个与Hive相关的开源项目,它提供了一个Web界面,...

    ClickHouse-JDBCJar包.zip

    9. **性能优化**:通过设置JDBC连接参数,如缓冲大小、并发级别等,优化性能。 在实际开发中,为了确保ClickHouse JDBC驱动能够正常工作,还需要在项目中配置相关的依赖,通常是将clickhouse-jdbc.jar添加到类路径...

    sqlite-jdbc-3.8.7.jar下载

    总的来说,`sqlite-jdbc-3.8.7.jar`是Java开发人员连接SQLite数据库的重要工具,它简化了数据库操作,使开发者能够利用SQLite的轻量级特性在Java应用中实现数据存储和管理。在实际项目中,需要根据具体需求和环境来...

    shardingsphere-jdbc-5.0.0-beta依赖包

    总之,ShardingSphere-JDBC 5.0.0-BETA是数据库分布式管理的强大工具,其灵活的数据分片、读写分离和分布式事务管理,能有效提升系统的扩展性和稳定性。通过非Maven方式引入依赖包,使得不依赖构建工具的项目也能...

    hive-jdbc-uber-2.6.3.0-292.jar

    - 安全性:在生产环境中,应确保JDBC连接的安全性,避免敏感信息泄露。 - 性能优化:根据实际需求调整Hive的配置参数,例如加大执行内存,优化查询性能。 总结,"hive-jdbc-uber-2.6.3.0-292.jar"是Hive与DBeaver...

    hive-jdbc-1.2.1-standalone

    Hive JDBC是Apache Hive项目的一部分,它提供了一个Java数据库连接(JDBC)接口,使得Java应用程序可以方便地与Hive进行交互。Hive JDBC允许开发者使用标准的JDBC API来执行SQL查询,获取数据,或者将数据写入Hive表...

    hive-jdbc-uber-2.6.5.0-292.zip

    在压缩包内只有一个文件“hive-jdbc-uber-2.6.5.0-292.jar”,这意味着这个JAR包含了所有必要的类和库,使得DataGrip能正确识别并连接到Hive。为了在DataGrip中使用这个驱动,用户需要按照以下步骤操作: 1. 下载并...

    openGauss Connectors(openGauss-3.0.0-JDBC.tar.gz)

    总的来说,openGauss Connectors是连接Java应用程序与openGauss数据库的关键工具,它的存在使得Java开发者能够充分利用openGauss数据库的强大功能,同时享受到Java编程的便捷性。通过正确配置和使用这些JDBC驱动,...

    spring-jdbc jar包.rar

    5. **DataSourceUtils** 和 **ConnectionUtils**:这些工具类帮助管理DataSource和数据库连接,确保资源的正确获取和释放,防止资源泄露。 在实际应用中,Spring JDBC提供了以下优势: - **代码简洁性**:通过模板...

    openGauss-1.1.0-JDBC.tar.gz

    3. **JDBC连接过程**:连接数据库通常包括加载驱动、建立连接、创建Statement或PreparedStatement对象、执行SQL语句、处理结果集和关闭连接等步骤。 4. **JDBC事务处理**:JDBC支持ACID(原子性、一致性、隔离性和...

    clickhouse-jdbc-0.1.50d.zip

    总的来说,`clickhouse-jdbc-0.1.50d.zip`文件提供了连接和操作Clickhouse数据库的关键工具,使得Java开发者能够充分利用Clickhouse的强大功能,进行高效的数据分析和处理。在实际项目中,根据具体需求,开发者还...

    Hive-jdbc-3.1.1.zip

    8. **API文档**:Hive-jdbc-3.1.1.zip可能包含了Javadoc文档,这为开发者提供了详细的API参考,帮助他们理解和使用Hive JDBC的各种方法和类。 9. **示例和教程**:虽然压缩包本身可能不包含示例代码,但Hive JDBC...

    inceptor-jdbc-8.0.0.zip

    《深入理解Java连接星环数据库驱动:inceptor-jdbc-8.0.0.zip详解》 在Java开发中,数据库连接是不可或缺的一部分。本篇文章将详细介绍如何使用Java连接星环数据库,特别是针对“inceptor-jdbc-8.0.0.zip”这个...

    Sqlite-jdbc-3.7.2.jar和sqlite-jdbc-3.20.1.jar上传,亲测可用

    总的来说,`sqlite-jdbc-3.7.2.jar`和`sqlite-jdbc-3.20.1.jar`是Java开发者连接SQLite数据库的重要工具,它们提供了方便的接口和高效的数据操作能力,适用于各种大小的项目,特别是那些需要轻量级、无需独立服务器...

Global site tag (gtag.js) - Google Analytics