`
voff12
  • 浏览: 96377 次
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate在tomcat下的尝试2

阅读更多
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)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。
分享到:
评论

相关推荐

    tomcat-jpa-sample

    Weld 中与 Jandex 相关的类然后与 slf4j 不兼容,当它们尝试将带有“{}”的 slf4j 消息推送到 JBoss 日志记录时,它们会抛出 NumberFormatException,JBoss 日志记录期望带有“{0}”格式的 MessageFormat 消息。...

    基于Annation的电子商城

    2.Aneshop为发布的war文件,放入\apache-tomcat-6.0.18\webapps\目录下,启动tomcat即可 3.在浏览器地址栏输入http://127.0.0.1:8080/Aneshop/运行web程序 4.后台http://127.0.0.1:8080/Aneshop/shopbg/bg.jsp 5.该...

    基于Java的网上购物系统的设计与实现-毕业设计论文

    本系统是尝试用 JSP 在网络上架构一个动态的电子商务网站,它是在 Windows 7 下,以 MySQL 为数据库开发平台,Tomcat 网络信息服务作为应用服务器,基于 J2EE 多层体系结构,应用 Java、Struts、Hibernate等技术...

    employeeManager:自己尝试写的一个简单的考勤管理系统,包含管理成员信息以及成员考勤,管理员审批的功能,采用SpringMVC+Hibernate4+Spring搭建

    WEB容器:Tomcat 7.0 视图框架:SpringMVC 4.3.6.RELEASE 核心框架:Spring Framework 4.3.6.RELEASE 持久层框架:Hibernate4.3.11.Final 数据库连接池:C3P0 工具类 Apache fileupload 文件上传组件 Apache commons-...

    Faceye 基础版概框

    进行mysql根目录,如你的MySQL安装在C:/下 那么你的根目录为:c:/MySQL/bin 使用:mysql -u root -p 其中 root为你MySQL数据库的用户名,当然你可以使用其它数据库用户,默认使用root用户 执行完本命令后,控制台会提示您...

    计算机专业毕业实习日记.docx

    说得简单点就是大家都在一个模式下写代码,这样就能保证写出来的程序能被每一个人都能够读懂,而且有些基本的东西它可以自动帮你生成,不用你自己一个一个的敲了,达到了代码复用。这样保证可读性的同时也提高了开发...

    Spring_Framework_ API_5.0.5 (CHM格式)

    SpringFramework5 包含响应流(定义响应性API的语言中立尝试)和 Reactor(由Spring Pivotal团队提供的 Reactive Stream 的Java实现), 以用于其自身的用途以及其许多核心API。 Spring Web Reactive 在 spring-...

    jsp传参 servlet接收中文乱码问题的解决方法

    毕竟数据是根本嘛,首先我用的是hibernate+servlet,但是在jsp页面传参到servlet的时候中文一直乱码,我尝试了好多方法,最后还是解决了。 第一,首先看清项目的编码,jsp页面的编码 第二,修改tomcat 下面的server....

    Jenkins_project

    很快,我将尝试更新这个项目或创建新项目,以 Spring MVC、Hibernate 的新趋势。 先决条件: - Maven (I tested with Apache Maven 3.0.3) - Apache Tomcat (I tested with apache-tomcat-7.0.52) - MySQL ( I ...

    Myeclipse连接mysql数据库心得体会

    我是给同学做一个J2EE 关于struct+hibernate结构的课设,数据库以前用的是Oracle,数据库丢失,不想装Oracle,那玩意装在本子上太刀了,卸不掉恶心…就换个mysql给他改改,网上的一些帖子,太老了,版本以及网址都是...

    JAVA上百实例源码以及开源项目

    FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上...

    JAVA上百实例源码以及开源项目源代码

    FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上...

Global site tag (gtag.js) - Google Analytics