Cannot create JDBC driver of class '' for connect URL 'null'
的解决方案:
如果是tomcat5.5,则不能按以下方法配置。
<Resource name="jdbc/MYDS" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/chen">
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost/voff</value>
</parameter>
</ResourceParams>
</Context>
应该按以下的方式配置。
<Resource
name="jdbc/chen"
auth="Container"
type="javax.sql.DataSource"
username="root"
password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/voff"
/>
存为Context.xml放在META-INF下即可。
测试代码:
<%@ page language="java" contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*,javax.sql.*,javax.naming.*"%>
<%
Connection conn=null;
String url="jdbc:mysql://localhost:3306/voff";
String user="root";
String password="";
try{
InitialContext ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/chen");
conn=ds.getConnection();
if(conn!=null)
{
out.println("数据源jdbc/chen配置正确!");
}
}catch(Exception e)
{
out.println("数据库驱动加载出现错误!"+e.getMessage());
}
%>
一个测试JNDI的驱动测试:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="javax.naming.*"%>
<html>
<body>
<%
try{
Context initCtx=new InitialContext();
DataSource db = (DataSource)initCtx.lookup("java:comp/env/jdbc/chen");
Connection conn = db.getConnection();
ResultSet rs=null;
Statement stmt = conn.createStatement();
String sql="select * from user limit 10";
rs = stmt.executeQuery(sql);
out.println("User-list"+"<br>");
while(rs.next()){
out.print("id is"+rs.getString("id")+"<br>");
out.print("name is"+rs.getString("username")+"<br>");
}
rs.close();
stmt.close();
conn.close();
}
catch(Exception e){
out.print(e);
}
%>
</body>
</html>
Resource项(即连接池的DataSource对象),有3个属性name、auth、type,name项是JNDI的名称定义,程序通过JNDI才能找到此对象,这里取名jdbc/LJJ;auth项即连接池管理权属性,这里取值Container,申明为容器管理;type项即对象的类型,这里取值javax.sql.DataSource,申明为数据库连接池。
在接下来的<ResourceParams>域内容里包含四个参数username、password、driverClassName、url,依次为数据库的用户名、密码、JDBC驱动和数据库地址
在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁发生这种数据库操作,系统的性能必然会急剧下降,甚至会导致系统崩溃。数据库连接池技术是解决这个问题最常用的方法,在许多应用程序服务器(例如:Weblogic, WebSphere,JBoss)中,基本都提供了这项技术,无需自己编程,但是,深入了解这项技术是非常必要的。
数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。
数据库连接池的主要操作如下:
(1)建立数据库连接池对象(服务器启动)。
(2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。
(3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。
(4)存取数据库。
(5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。
(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。
分享到:
相关推荐
在Java编程中,异常处理是不可或缺的一部分,尤其是在开发复杂的企业级应用时,如使用Hibernate进行对象关系映射和Tomcat作为应用服务器。本篇将详细解释一些常见的Java、Hibernate以及与Tomcat相关的异常,帮助...
标题中的“启动tomcat报错org.hibernate.cache.CacheProvider”指的是在尝试启动Apache Tomcat服务器时遇到了与Hibernate缓存提供者相关的错误。这通常涉及到Hibernate框架的配置或运行时环境问题。Hibernate是一个...
在 Tomcat 的 conf 目录下,我们需要建立 workers.properties 文件,并在文件中添加相应的配置参数。 三、APACHE 错误日志分析 在 APACHE 的错误日志文件中,我们可以看到一些错误信息,例如: * [warn] (OS 64) ...
在开发Java Web应用程序时,`Struts2`和`Hibernate3`经常被组合使用,以构建数据驱动的交互式Web应用。`Struts2`是一个强大的MVC框架,负责处理用户请求并展示结果,而`Hibernate3`则作为对象关系映射(ORM)工具,...
在进行SSH(Struts+Spring+Hibernate)框架整合的过程中,启动Tomcat服务器时常会遇到一些问题。这些问题如果不能及时解决,将会影响到项目的正常运行与部署。本文将对“tomcat启动的错误”这一主题进行深入探讨,并...
在实际应用中,Tomcat经常与Spring Boot、Hibernate等框架结合使用,构建高效的企业级Web应用。同时,由于其轻量级和易于管理的特性,Tomcat也常作为开发和测试环境的选择。不过,对于大型高并发的生产环境,可能...
此时,Tomcat将能够正确地管理数据库连接,并在连接断开时自动尝试重新建立连接,大大提高了应用的稳定性和可用性。 #### 八、总结 通过上述步骤,我们详细介绍了如何在Tomcat6中配置连接池,并实现了数据库连接的...
标签的实现类需要继承自Struts2的标签基类,并调用Spring服务层的方法获取所有用户数据,然后在JSP页面中使用这个标签来显示。 在实际开发中,还需要关注事务管理、异常处理和安全性等方面。Spring提供了强大的事务...
Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目涉及到的知识点涵盖了Java Web开发中常用的三个框架技术,即Struts2、Spring和Hibernate。这个教程旨在指导开发者如何将这三种技术整合在一起,构建一个Web...
通过上述步骤,我们可以成功地在MyEclipse环境下配置好Struts2 + Hibernate3.3 + Spring3.0框架,并且解决了一些常见的配置问题。这种配置方法不仅能够帮助我们构建出高效稳定的Web应用程序,还能够在实际开发过程中...
在开发和调试基于Hibernate的Java应用时,有时我们需要获取到SQL语句的完整形式,而不仅仅是Hibernate默认输出的参数化形式。在这种情况下,P6Spy是一个非常有用的工具。P6Spy是一个开源的JDBC代理库,它允许我们...
在Java开发中,HibernateDao 通常作为一个独立的层,位于业务逻辑层(Service Layer)与持久化层(Persistence Layer)之间,用来封装对数据库的一系列CRUD(创建、读取、更新、删除)操作。 在JUMPER小组的工作...
在这个"seam+hibernate注册例子"中,我们将探讨如何在Eclipse 3.4环境下,结合Tomcat 6.0服务器,搭建一个使用Seam和Hibernate的注册系统。 首先,确保你已经安装了Eclipse IDE和Tomcat 6.0服务器。Eclipse 3.4版本...
在这个“Spring-Struts2-Hibernate登录打印日志”的主题中,我们将深入探讨如何在SSH框架下实现用户登录功能,并记录相关的日志信息。 首先,让我们了解SSH框架的核心组件: 1. **Spring**:Spring框架是整个应用...
4. **类加载器问题**:在某些情况下,如容器环境(如Tomcat、Jetty)中,如果多个类路径下存在相同类的定义,可能会导致类加载混乱,进而引发此错误。 为了解决这个问题,可以按照以下步骤进行排查: 1. **检查...
在这个例子中,JavaEE提供了运行环境,如Tomcat或Glassfish,使得Struts2和Hibernate能够协同工作。 在实际应用中,用户通常通过浏览器发送请求到服务器,例如尝试登录。这个过程会被Struts2的Action拦截并处理。`...
在IT领域,尤其是在Java开发与Hibernate框架的使用中,遇到各种各样的错误是家常便饭。本文将根据提供的文件信息,深入解析几个常见的Hibernate错误及其解决方案,旨在为开发者提供一份排错宝典,帮助他们迅速定位并...
本标题主要涉及的是在 Windows 操作系统环境下如何整合 WebLogic 10、JSF 1.2 和 Hibernate 3 这三个技术组件。这种整合常见于企业级 Java 应用服务器的开发环境中,特别是那些基于 Java EE 标准的应用。 - **...
Struts2、Spring、Hibernate和DWR是Java Web开发中常用的四大框架,它们各自负责不同的功能,协同工作能构建出高效、灵活的企业级应用。在这个小实例中,开发者结合这四个框架来展示了一个完整的后端架构。 Struts2...