`
- 浏览:
183698 次
- 性别:
- 来自:
北京
-
[size=large][
1,直接连接数据库的情形:
public class DBUtil {
/**
* 单例模式创建数据库对象
*/
private static DBUtil instance=null;
private DBUtil(){}
//为了保证单例性,必须使用同步关键字
public synchronized static DBUtil getInstance(){
if(instance==null)
instance=new DBUtil();
return instance;
}
//连接必要的信息
public String driver="com.mysql.jdbc.Driver";
public String url="jdbc:mysql://localhost:3306/test";
public String username="root";
public String password="8921498YW";
public Connection getConnection(){
Connection conn=null;
try {
Class.forName(driver);
conn=DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
//测试连接的效率
public static void main(String[] args) throws SQLException {
long begin=System.currentTimeMillis();//开始时刻
for(int i=0;i<1000;i++){//获得1000次连接
Connection conn=DBUtil.getInstance().getConnection();
conn.close();
}
long end=System.currentTimeMillis();
System.out.println("直接连接数据库所需要的时间:"+(end-begin));
//在我的机子上1000次直接连接耗时:12031
}
}
2, 使用DBCP连接池:
/**
* 数据库连接池:
* 它是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态的对池中的连接进行申请,使用,释放
*
* DBCP是apache组织下的一个开源项目
* 需要两个jar包,commons-dbcp-1.2.2和commons-pool
* 这种连接池效率很高,但经常出现连接丢失现象,用的不是很多,用的多的是c3p0
* */
public class DBUtilOfDBCP {
private static BasicDataSource dataSource=null;//数据源
private static DataSourceConnectionFactory factory;//连接工厂
private static DBUtilOfDBCP instance=null;
private DBUtilOfDBCP(){
dataSource=new BasicDataSource();
//设置jdbc相关信息
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDriverClassName(driver);
//连接池设置
dataSource.setInitialSize(20);//初始连接数
dataSource.setMaxActive(100);//最大获取连接数
dataSource.setMaxIdle(30);//最大可用空闲连接数
dataSource.setMinIdle(10);//最小可用空闲连接数
factory=new DataSourceConnectionFactory(dataSource);
}
//为了保证单例性,必须使用同步关键字
public synchronized static DBUtilOfDBCP getInstance(){
if(instance==null)
instance=new DBUtilOfDBCP();
return instance;
}
//连接必要的信息
public String driver="com.mysql.jdbc.Driver";
public String url="jdbc:mysql://localhost:3306/test";
public String username="root";
public String password="8921498YW";
public Connection getConnection() throws SQLException{
//使用工厂创建连接
return factory.createConnection();
}
public static void main(String[] args) throws SQLException {
long begin=System.currentTimeMillis();//开始时刻
for(int i=0;i<1000;i++){//获得1000次连接
Connection conn=DBUtilOfDBCP.getInstance().getConnection();
conn.close();
}
long end=System.currentTimeMillis();
System.out.println("DBCP连接数据库所需要的时间:"+(end-begin));
//在我的机子上1000次DBCP连接耗时:1000毫秒
}
}
3,使用C3P0连接池:
* C3P0,比较稳定
* 需要jar包:c3p0-0.9.1
public class DBUtilOfC3P0 {
private static ComboPooledDataSource dataSource;
private static DBUtilOfC3P0 instance=null;
private DBUtilOfC3P0(){
dataSource=new ComboPooledDataSource();
//设置jdbc连接信息
dataSource.setUser(username);
dataSource.setPassword(password);
dataSource.setJdbcUrl(url);
try {
dataSource.setDriverClass(driver);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
//设置连接池
dataSource.setInitialPoolSize(30);
dataSource.setMaxPoolSize(100);
dataSource.setMinPoolSize(10);
}
//为了保证单例性,必须使用同步关键字
public synchronized static DBUtilOfC3P0 getInstance(){
if(instance==null)
instance=new DBUtilOfC3P0();
return instance;
}
//连接必要的信息
public String driver="com.mysql.jdbc.Driver";
public String url="jdbc:mysql://localhost:3306/test";
public String username="root";
public String password="8921498YW";
public Connection getConnection() throws SQLException{
//使用工厂创建连接
return dataSource.getConnection();
}
public static void main(String[] args) throws SQLException {
long begin=System.currentTimeMillis();//开始时刻
for(int i=0;i<1000;i++){//获得1000次连接
Connection conn=DBUtilOfC3P0.getInstance().getConnection();
conn.close();
}
long end=System.currentTimeMillis();
System.out.println("C3P0连接数据库所需要的时间:"+(end-begin));
//在我的机子上1000次C3P0连接耗时:1813毫秒
}
}
/size]
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
ODBC是一种标准的数据库访问接口,允许应用程序通过一个统一的方式与多种数据库系统通信。开发者需要配置ODBC数据源,包含数据库的服务器地址、端口、数据库名、用户名和密码等信息。 "查询Progress数据表"这部分...
在IT行业中,数据库是...总的来说,“链接数据库工具类DBUtil + 配置文件”的方式是Java开发中的常见实践,它使得数据库操作更加便捷、高效且安全。掌握这类工具的使用,对于任何Java开发者来说都是一项重要的技能。
Java Persistence API (JPA) 和 Hibernate 是ORM(对象关系映射)框架,它们提供了更高级别的抽象,使得开发者可以使用面向对象的方式来操作数据库,而无需编写大量SQL代码。 10. **Spring JDBC与MyBatis**: ...
### 数据库基础教程:ASP.NET链接数据库基础 在本篇教程中,我们将详细介绍如何使用ASP.NET连接并操作数据库。此教程适用于希望了解如何利用ASP.NET技术进行数据库操作的初学者和中级开发人员。 #### ASP.NET简介 ...
不同的数据库系统有不同的特性和接口,因此连接各种数据库的方式也有所差异。本文将深入探讨多种常见的数据库连接方法,帮助你理解和掌握如何与各种数据库进行交互。 首先,我们来了解一下几种主流的数据库系统,...
本篇将详细介绍JAVA使用JDBC链接数据库的相关知识点。 首先,了解JDBC的核心概念: 1. **JDBC驱动**:JDBC驱动是Java程序与数据库之间通信的桥梁。根据实现方式,它分为四种类型:JDBC-ODBC桥接驱动、网络纯Java...
标题中的“jdbc连接各种数据库方式”指的是使用Java Database Connectivity (JDBC) API来与不同的数据库管理系统(DBMS)建立连接并进行数据操作的方法。JDBC是Java编程语言中用于访问数据库的标准应用程序接口,它...
数据库连接方式调整是数据库管理和优化的关键环节,尤其是在高并发环境下。当前的数据库连接方式采用的是Failover模式,这种模式在单个节点故障时能提供无缝的用户体验,但并不适用于大规模并发的情况。以下是针对...
### Java链接数据库大全 #### 一、概述 Java数据库连接(JDBC)是Java平台上的一个重要的技术组件,它提供了一套标准的API接口,使得Java开发者能够在纯Java环境中访问各种类型的数据库。JDBC的核心作用在于它允许...
当使用C#链接数据库时,通常会用到ADO.NET库,它包含了诸如SqlConnection、SqlCommand、SqlDataAdapter等类。例如,你可以使用SqlConnection打开到数据库的连接,SqlCommand执行SQL语句,SqlDataAdapter则用于填充...
首先,让我们了解一下“Flash链接数据库实例”这一主题。在Web应用中,动态数据的存储和检索通常依赖于数据库,如MySQL、SQL Server或Access等。Flash可以通过ActionScript与服务器上的数据库进行通信,从而获取、...
本篇文章将深入探讨如何使用C++链接数据库,主要涉及以下几个知识点: 1. **ODBC(Open Database Connectivity)** ODBC是微软提供的一种数据库访问接口,允许应用程序通过统一的方式访问多种不同的数据库。在C++...
数据库连接是程序与数据库进行交互的基础,理解并掌握多种连接方式对于开发高效、稳定的系统至关重要。本文将深入探讨四种常见的数据库连接方式,分别是:JDBC(Java Database Connectivity)、ODBC(Open Database ...
Java的多种数据库连接方式,支持MySQL,SQL server,Oracle,PostgreSQL等数据
这种方式适用于需要通过编程方式动态创建数据库链接的情况。 **步骤**: 1. **登录PL/SQL Developer或SQL*Plus**:首先使用Oracle数据库的用户名和密码登录到PL/SQL环境。 2. **执行SQL命令**:执行上述的`CREATE ...
【VB的DATA数据格式链接数据库】 在VB(Visual Basic)编程中,链接数据库是一项关键技能,尤其是在处理数据存储和检索的应用程序中。DATA数据格式是VB早期版本中用于存储结构化数据的一种方式,它并不直接链接到...
总的来说,使用Java配置文件链接数据库是一种最佳实践,它将数据库连接信息与业务逻辑分离,提高了代码的可读性和可维护性。同时,通过创建通用的数据库操作类,可以简化对数据库的操作,使代码更加模块化。在实际...
实用:怎样用plsql工具链接Oracle10g数据库的方式及步骤
在IT行业中,数据库链接信息的初始化是任何应用与数据库交互的基础步骤。这涉及到配置应用程序以正确连接到数据库服务器,获取并管理数据。本主题将详细探讨如何使用`common-configuration`、`slf4j`和`logback`组件...