数据库连接池:减少数据库连接的数量提高数据库访问效率
DBCP优点:
1\速度快
2\tomcat 都默认使用DBCP,說明大众!
3\连接数控制与连接归还策略
4\应对网络不稳定的策略
5\应对连接泄漏的策略
测试环境:MyEclipse 6.5+ tomcat 6.0+ Sybase ase
1、加入DBCP包:commons-dbcp-1.4.jar jconn3.jar
2\在tomcat content.xml 中加入
<Resource name="/jdbc/resourceName"
type="javax.sql.DataSource"
driverClassName="com.sybase.jdbc3.jdbc.SybDataSource"
url="jdbc:sybase:Tds:127.0.0.1:4001/amls"
username=""
password=""
maxActive="40"
maxIdle="2"
maxWait="50000" />
3\修改项目的web.xml
<resource-ref>
<description>
Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the
configurartion for the web application.
</description>
<res-ref-name>
amls
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
4\ java 调用JNDI
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import com.handson.dao.UserDao;
import com.handson.dto.User;
public class ConnectionProvider {
private static DataSource ds = null;
static{
try {
Context c = new InitialContext();
ds = (DataSource) c.lookup("java:/comp/env/jdbc/resourceName"); //此处默认需要加/comp/env,可以进行设置不加!
} catch (NamingException e) {
e.printStackTrace();
}
}
//以下为JDBC连接!
//Class.forName(driverName);
// Connection dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
public static Connection getConnection(){
if(ds != null){
try {
return ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
}
5 获取连接JAVA:
package com.handson.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.handson.dbcp.*;
import com.handson.dto.User;
public class UserDao {
private Connection con;
public User findUserByUserName(String userName){
con = ConnectionProvider.getConnection();
String sql = "select * from userInfo where Username = ?";
PreparedStatement pst = null;
ResultSet rs = null;
User user = null;
try {
pst = con.prepareStatement(sql);
pst.setString(1, userName);
rs = pst.executeQuery();
if(rs.next()){
user = new User();
user.setHost(rs.getString("Host"));
user.setUser(rs.getString("Username"));
user.setPassword(rs.getString("Password"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return user;
}
}
6测试JSP:
<body>
<% UserDao dao = new UserDao();
User user=dao.findUserByUserName("root");
out.println("Host:"+user.getHost()+"<br>");
out.println("User:"+user.getUser()+"<br>");
out.println("Password:"+user.getPassword()+"<br>");
%>
</body>
TIPS:
这个上面的思路不是太清晰的,其实可以将第一步的配置文件放到项目下!
还没有完全理解透彻!
分享到:
相关推荐
通过这份"Tomcat5.5连接池配置案例",新手可以系统学习并掌握如何在Tomcat环境中配置和使用连接池,提升应用的数据库访问效率。同时,案例笔记将帮助理解每个步骤背后的原理和最佳实践,从而更好地应对实际开发中的...
7. **连接池**:在实际应用中,为了优化性能和资源利用,通常会使用连接池(如C3P0、HikariCP、Apache DBCP等),它预先创建并管理一组数据库连接,避免频繁创建和关闭连接。 8. **JDBC与JSP结合**:在JSP(Java...
### JNDI (Java Naming and Directory Interface)学习笔记 #### 一、JNDI简介 JNDI(Java Naming and Directory Interface),即Java命名和目录接口,是在分布式计算环境中使用的一种标准化接口,它允许Java应用...
- **配置**:除了JNDI方式外,还可以在应用中直接配置DataSource,例如使用Apache DBCP或C3P0等第三方连接池库,通过编程方式创建和管理DataSource。 4. **数据库连接管理**: DataSource还负责处理连接的生命...
常见的数据库连接池有Apache的DBCP、C3P0,以及HikariCP等。 2. **JNDI(Java Naming and Directory Interface)**:在企业级应用中,数据源通常通过JNDI服务进行查找和注册。JNDI提供了一个统一的接口,允许应用...
4. 连接池实现:CAS支持多种连接池实现,如Apache Commons DBCP、C3P0、HikariCP等。每种连接池都有其特定的配置属性,如最大连接数、最小连接数、超时时间等。 5. 数据源初始化脚本:在CAS启动时,可能会执行一些...
《Tomcat学习笔记》 Tomcat是一款开源的Java Servlet容器,是Apache软件基金会下的Jakarta项目中的核心项目,主要用于运行Java Web应用程序。本笔记将详细阐述Tomcat的安装、配置、虚拟主机设置、JDBC数据库连接池...
- **连接池**:管理数据库连接,提高性能,如C3P0、Apache DBCP、HikariCP等。 ### 9. JDBC优化技巧 - 使用PreparedStatement代替Statement。 - 使用批处理操作批量插入。 - 尽量减少结果集大小,避免全表扫描。 -...
- **数据源的概念**:数据源(DataSource)是JNDI(Java Naming and Directory Interface)的一部分,提供了更高效、更安全的数据库连接管理。 **6. 高级特性** - **CallableStatement**:用于调用数据库的存储过程...
最后,笔记可能会涵盖连接池的概念,如C3P0、Apache DBCP和HikariCP等,它们可以管理和复用数据库连接,提高系统性能和稳定性。 方立勋老师的JDBC笔记还会深入到JDBC的高级特性,如JDBC批处理、连接池的使用、JNDI...
根据给定的文件信息,我们可以总结出以下几个关键...DBCP是Apache Commons Pool的一个子项目,提供了对数据库连接池的支持。在Spring中,可以使用`BasicDataSource`作为数据源,它同样是在XML配置文件中定义: ```xml ...
标题中的“Spring學習筆記DEMO代碼(二)”表明这是一个关于Spring框架的第二部分学习笔记,可能包含了代码示例。描述中的“NULL”意味着没有提供额外的文本信息,但我们可以通过标签和压缩包文件名来推测内容。 ...
DataSource是数据库连接的工厂,它提供了更高级的特性如连接池和事务管理。 ### JDBC事务处理 JDBC支持三种事务隔离级别: - **读未提交(READ UNCOMMITTED)** - **读已提交(READ COMMITTED)** - **可重复读...
DataSource是Spring与数据库交互的关键,它可以是JDBC驱动定义的数据源、JNDI查询的数据源,或者连接池如DBCP。 在Spring与iBatis集成时,DAO接口定义业务操作,实现类则包含具体的数据库操作,通常会利用...