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
分享到:
相关推荐
在Java项目中,需要将`polardb-jdbc18.jar`添加到类路径或者Maven/Gradle等构建工具的依赖库中。 3.2 建立连接 使用`java.sql.DriverManager.getConnection()`方法建立与PolarDB的连接,传入相应的URL、用户名和...
Hive JDBC驱动是Hive与各种数据库管理工具、应用程序之间建立连接的关键组件,使得用户可以通过标准的JDBC接口来访问和操作Hive中的数据。 标题中的"**hive-jdbc-uber-2.6.5.0-292.jar**"是一个Uber(也称为Shaded...
2. 创建一个JDBC连接字符串,格式通常为`jdbc:hive2://<HIVESERVER>:<PORT>/<DATABASE>`, 其中 `<HIVESERVER>` 是Hive服务器的地址,`<PORT>` 是Hive Thrift服务器监听的端口,`<DATABASE>` 是默认数据库名称。...
在实际应用中,使用ha-jdbc时,开发者需要将ha-jdbc.jar添加到项目的类路径中,并在JDBC连接字符串中指定ha-jdbc的相关配置。这些配置可能包括数据库地址、端口、用户名、密码,以及ha-jdbc特有的设置,如心跳检测...
它提供了标准的JDBC接口,使得任何支持JDBC的应用程序,如Java应用或BI工具,都可以方便地连接到Hive执行SQL查询。"hive-jdbc-jar-多版本.zip"是一个压缩包,包含了不同版本的Hive JDBC Uber Jars,覆盖了从1.5到1.8...
9. **性能优化**:通过设置JDBC连接参数,如缓冲大小、并发级别等,优化性能。 在实际开发中,为了确保ClickHouse JDBC驱动能够正常工作,还需要在项目中配置相关的依赖,通常是将clickhouse-jdbc.jar添加到类路径...
在Kerberos环境中使用Hive JDBC,需要配置相应的安全设置,如获取Kerberos票据并将其嵌入到JDBC连接中,以实现安全的数据访问。 Yanagishima(やなぎしマ)是另一个与Hive相关的开源项目,它提供了一个Web界面,...
总的来说,`sqlite-jdbc-3.8.7.jar`是Java开发人员连接SQLite数据库的重要工具,它简化了数据库操作,使开发者能够利用SQLite的轻量级特性在Java应用中实现数据存储和管理。在实际项目中,需要根据具体需求和环境来...
总之,ShardingSphere-JDBC 5.0.0-BETA是数据库分布式管理的强大工具,其灵活的数据分片、读写分离和分布式事务管理,能有效提升系统的扩展性和稳定性。通过非Maven方式引入依赖包,使得不依赖构建工具的项目也能...
- 安全性:在生产环境中,应确保JDBC连接的安全性,避免敏感信息泄露。 - 性能优化:根据实际需求调整Hive的配置参数,例如加大执行内存,优化查询性能。 总结,"hive-jdbc-uber-2.6.3.0-292.jar"是Hive与DBeaver...
Hive JDBC是Apache Hive项目的一部分,它提供了一个Java数据库连接(JDBC)接口,使得Java应用程序可以方便地与Hive进行交互。Hive JDBC允许开发者使用标准的JDBC API来执行SQL查询,获取数据,或者将数据写入Hive表...
在压缩包内只有一个文件“hive-jdbc-uber-2.6.5.0-292.jar”,这意味着这个JAR包含了所有必要的类和库,使得DataGrip能正确识别并连接到Hive。为了在DataGrip中使用这个驱动,用户需要按照以下步骤操作: 1. 下载并...
总的来说,openGauss Connectors是连接Java应用程序与openGauss数据库的关键工具,它的存在使得Java开发者能够充分利用openGauss数据库的强大功能,同时享受到Java编程的便捷性。通过正确配置和使用这些JDBC驱动,...
5. **DataSourceUtils** 和 **ConnectionUtils**:这些工具类帮助管理DataSource和数据库连接,确保资源的正确获取和释放,防止资源泄露。 在实际应用中,Spring JDBC提供了以下优势: - **代码简洁性**:通过模板...
3. **JDBC连接过程**:连接数据库通常包括加载驱动、建立连接、创建Statement或PreparedStatement对象、执行SQL语句、处理结果集和关闭连接等步骤。 4. **JDBC事务处理**:JDBC支持ACID(原子性、一致性、隔离性和...
总的来说,`clickhouse-jdbc-0.1.50d.zip`文件提供了连接和操作Clickhouse数据库的关键工具,使得Java开发者能够充分利用Clickhouse的强大功能,进行高效的数据分析和处理。在实际项目中,根据具体需求,开发者还...
总的来说,`sqlite-jdbc-3.7.2.jar`和`sqlite-jdbc-3.20.1.jar`是Java开发者连接SQLite数据库的重要工具,它们提供了方便的接口和高效的数据操作能力,适用于各种大小的项目,特别是那些需要轻量级、无需独立服务器...
《Hive JDBC Uber Driver 2.6.5.0-292详解》 Hive JDBC Uber Driver,如文件名“hive-jdbc-uber-2.6.5.0-292.jar”所...无论是在大数据处理、ETL流程还是数据分析项目中,这个驱动都是连接Hive与Java世界的关键工具。
SQL Server JDBC驱动还支持一些高级功能,如批处理、存储过程调用、游标、预编译的`PreparedStatement`、JDBC连接池等。这些特性可以帮助优化性能并简化代码。 总之,`mssql-jdbc-6.4.0.jre8.jar`是Java连接SQL ...