zoukankan      html  css  js  c++  java
  • hibernate 在tomcat7.X 下配置mysql数据源

    先说一点题外话,LZ近期学习java web。

    今天刚看到hibernate,发如今hibernate配置数据源时网上的资料都太久远了,一般以tomcat 5 版本号下的配置居多。而tomcat 7下的配置略有变化,新手找资料困难,可能会略受打击,故整理资料与大家共享。也可作备忘之用。若有不当之处。还请指教!



    1.加入数据库驱动包mysql-connector-java-5.1.13-bin.jar加入到tomcat文件夹下的lib包中。


    注意:网上差点儿全部版本号都说须要加入commons-dbcp-1.4.jar,commons-pool-1.5.4.jar和commons-collections.jar。

    可是tomcat 7 已经不用加入这些jar文件了。由于tomcat 7的lib包以下已经集成了这些库。

    官方集成文档上有:These libraries are located in a single JAR at $CATALINA_HOME/lib/tomcat-dbcp.jar

    大概意思就是:这些库文件都位于一个单独的JAR文件里,该文件的路径是/lib/tomcat-dbcp.jar。

    2.改动Tomcat_Home/conf/server.xml,</host>标签之前增加:

       <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
                   maxActive="100" maxIdle="30" maxWait="10000"
                   username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
                   url="jdbc:mysql://localhost:3306/javatest"/>

    3.在context.xml中增加引用


    <ResourceLink name="jdbc/TestDB" global="jdbc/TestDB"    
          type="javax.sql.DataSource"/> 

    4.在你的project项目的web.xml中增加<resource-ref>。

        <resource-ref>  
            <description>tomcat datasource test,one mysql datasource</description>  
            <res-ref-name>jdbc/TestDB</res-ref-name>  
            <res-type>javax.sql.DataSource</res-type>  
            <res-auth>Container</res-auth>  
        </resource-ref>

    5.在hibernate.cfg.xml文件里配置数据库连接,这个有非常多教程,此处便不再详述。

    另外,注意数据源仅仅有在web项目中才干够使用。

    再次出来写个简单的servlet来输出hibernate 的session对象:

    代码例如以下:

    package com.amaker.servlet;


    import java.io.IOException;

    import java.io.PrintWriter;


    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;


    import org.hibernate.Session;


    import com.amaker.util.HibernateUtil;


    @SuppressWarnings("serial")

    public class testServletextends HttpServlet {


    /**

    * Constructor of the object.

    */

    public testServlet() {

    super();

    }


    /**

    * Destruction of the servlet. <br>

    */

    public void destroy() {

    super.destroy();// Just puts "destroy" string in log

    // Put your code here

    }


    /**

    * The doGet method of the servlet.<br>

    *

    * This method is called when a form has its tag value method equals to get.

    * @param request the request send by the client to the server

    * @param response the response send by the server to the client

    * @throws ServletException if an error occurred

    * @throws IOException if an error occurred

    */

    public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    HibernateUtil util = new HibernateUtil();

    //HibernateUtil 类用来返回一个Session

    对象。非常easy,相信大家能够搞定。 Session session = util.getSession();

    response.setContentType("text/html");

    PrintWriter out = response.getWriter();

    out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");

    out.println("<HTML>");

    out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");

    out.println("  <BODY>");

    out.println(session);

    out.println("  </BODY>");

    out.println("</HTML>");

    out.flush();

    out.close();

    }


    public void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {


    doGet(request, response);

    }


    /**

    * Initialization of the servlet.<br>

    *

    * @throws ServletException if an error occurs

    */

    public void init()throws ServletException {

    // Put your code here

    }


    }

    訪问结果如图。返回一个session对象。





  • 相关阅读:
    Yii2中多表关联查询(join、joinwith)
    Yii2.0实用功能技巧解密之——分页功能
    Yii2.0中文开发向导——RBAC(基于角色的访问控制权限)表结构原理分析
    Yii2.0源码分析之——控制器文件分析(Controller.php)创建动作、执行动作
    Yii2.0源码分析之——主题(Theme)
    Yii2.0源码分析之——YiiBase自动加载类、引用文件(autoload)
    MySQL 性能调优的10个方法
    PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询–算法
    ThinkPHP3.2.3验证码显示、刷新、校验
    Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5102305.html
Copyright © 2011-2022 走看看