VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 864|回复: 8

有些问题很简单,可我怎么就是弄不出(Hibernate缓冲池)

[复制链接]

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-1-15 15:00:01 | 显示全部楼层 |阅读模式
小弟我碰到如此问题:(我想学学Struts+Hibernate来开发一点东西,以前用Jbuilder2005开发Struts时,对连接池我是用JNDI+Server8083.xml+Oracle是成功了的但是我用Eclipse+Myeclipse来配置连接池就一点都不知道怎么开始)在网上搜了很久,得到一些信息--就是可以先JNDI再在Hibernate中来配置,可是我弄了很久都不会。
所以小弟的要求是:1,希望各位能指点我怎么弄出来对Hibernate中的连接池(不用JNDI也行)2,不管什么方法只要你们实验过的请教教我,思路行,最好是有点相关代码更好,呵呵。
3,希望来了我这帖的不要客气,随便说说话,打几个字。
回复

使用道具 举报

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-1-25 23:54:01 | 显示全部楼层
基于又一天的思考,我说下我现在的方法:1,我是建的一个Listener来设置jndi的
public void contextInitialized(ServletContextEvent sce)
    {
        ServletContext application = sce.getServletContext();
        Context env = null;

        /**
         * Get the JNDI and set pool to a atrribute
         * Which we can use it in everywhere.
         */

        try
        {
            env = (Context)new InitialContext().lookup("java:comp/env");
            ds = (DataSource) env.lookup("jdbc/oracle/message_project");

            if (ds == null)
            {
                application.log("Can not find jdbc/oracle/message_project JNDI");
            }
        }
        catch (NamingException ne)
        {
            application.log("Can not get jdbc/oracle/message_project JNDI");
        }
        application.setAttribute("ds", ds);
    }
  2,然后是在tomcat5.0中配置数据库连接池的
<!-- 下面是我增加的 -->
        <Resource name="jdbc/oracle/message_project"
               auth="Container"
               type="javax.sql.DataSource"/>
         <ResourceParams name="jdbc/oracle/message_project">
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>

    <!-- Maximum number of dB connections in pool. Make sure you
         configure your mysqld max_connections large enough to handle
         all of your db connections. Set to 0 for no limit.
         -->
    <parameter>
      <name>maxActive</name>
      <value>100</value>
    </parameter>

    <!-- Maximum number of idle dB connections to retain in pool.
         Set to -1 for no limit.  See also the DBCP documentation on this
         and the minEvictableIdleTimeMillis configuration parameter.
         -->
    <parameter>
      <name>maxIdle</name>
      <value>30</value>
    </parameter>

    <!-- Maximum time to wait for a dB connection to become available
         in ms, in this example 10 seconds. An Exception is thrown if
         this timeout is exceeded.  Set to -1 to wait indefinitely.
         -->
    <parameter>
      <name>maxWait</name>
      <value>10000</value>
    </parameter>

    <!-- MySQL dB username and password for dB connections  -->
    <parameter>
     <name>username</name>
     <value>System</value>
    </parameter>
    <parameter>
     <name>password</name>
     <value>sql</value>
    </parameter>

    <!-- Class name for the old mm.mysql JDBC driver - uncomment this entry and comment next
         if you want to use this driver - we recommend using Connector/J though
    <parameter>
       <name>driverClassName</name>
       <value>org.gjt.mm.mysql.Driver</value>
    </parameter>
     -->
   
    <!-- Class name for the official MySQL Connector/J driver -->
    <parameter>
       <name>driverClassName</name>
       <value>oracle.jdbc.driver.OracleDriver</value>
    </parameter>
   
    <!-- The JDBC connection url for connecting to your MySQL dB.
         The autoReconnect=true argument to the url makes sure that the
         mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
         connection.  mysqld by default closes idle connections after 8 hours.
         -->
    <parameter>
      <name>url</name>
      <value>jdbc:oracle:thin:@localhost:1521:admin06</value>
    </parameter>
  </ResourceParams>
    <!-- 上面是我增加的 -->
存在问题:1,我不知道这样做对与否   2,(我用的是eclipse+myeclipse)我在myeclipse里面始终找不到数据库的映射(如果用Use JDBC Driver来连接的话我可以找到自动的映射)为什么用jndi就找不到呢,当然我知道是我不知道。所以我希望各位不怜指教啊,在线等了一天一晚了。。
回复

使用道具 举报

0

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-3-1 11:15:01 | 显示全部楼层
可以直接在myeclipse database 里面配置一个数据库连接JDBC的
JNDI的连接在myeclipse中没配过,单独在TOMCAT中的配置楼上说的很清楚!
回复

使用道具 举报

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-3-28 12:15:01 | 显示全部楼层
呵呵,谢谢楼上兄弟的发言,我现在也只好暂时用直接配置了。因为现在确实不知道怎么用jndi来配。。
希望有哪位大哥or姐能教我一下
回复

使用道具 举报

0

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-5-3 22:45:01 | 显示全部楼层
在hibernate.cfg.xml中加:
        <property name="jdbc.batch_size">5</property>
        <!-- Database connection settings -->
        <property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
        <property name="hibernate.proxool.pool_alias">DBPool</property>
        <property name="hibernate.proxool.xml">Proxool.xml</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
回复

使用道具 举报

0

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-5-4 01:00:02 | 显示全部楼层
再单独建个xml文件Proxool.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- the proxool configuration can be embedded within your own application's.
        Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
        <proxool>
                <alias>DBPool</alias>
                <driver-url>
                        jdbc:oracle:thin:@127.0.0.1:1521:edudb
                </driver-url>
                <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
                <driver-properties>
                        <property name="user" value="crmweb" />
                        <property name="password" value="crmweb" />
                </driver-properties>
                <connection-lifetime>60</connection-lifetime>
                <maximum-connection-count>20</maximum-connection-count>
                <minimum-connection-count>4</minimum-connection-count>
                <house-keeping-test-sql>
                        select CURRENT_DATE
                </house-keeping-test-sql>
        </proxool>
</something-else-entirely>
回复

使用道具 举报

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-5-27 18:00:01 | 显示全部楼层
感谢,我想问一下这个问题:HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope
        org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
        org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
        org.apache.jsp.login_005fmessage.login_jsp._jspService(login_jsp.java:169)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

什么问题,怎么是找不到:Cannot find bean org.apache.struts.taglib.html.BEAN in any scope这个东西呢,真的不懂,弄了半天,在冬天也是汗水于雨啊。。。
回复

使用道具 举报

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-5-28 08:30:01 | 显示全部楼层
loginContent.jsp:
<html:form action="/login">
        <table>
                <tr>
                        <td>
                                <bean:message key="login.name" />
                        </td>
                        <td>
                                <html:text property="userName" />
                                <html:errors property="name" />
                        </td>
                </tr>
                <tr>
                        <td>
                                <bean:message key="login.pwd" />
                        </td>
                        <td>
                                <html:password property="userPassword" />
                                <html:errors property="password" />
                        </td>
                </tr>
               
                <tr>
                        <td>
                                <html:submit property="submit">
                                <bean:message key="login.submit" />
                                </html:submit>
                        </td>
                        <td>
                                <html:reset property="reset">
                                <bean:message key="login.reset" />
                                </html:reset>
                        </td>
                </tr>
        </table>
</html:form>
login.jsp:
<%@ include file="../taglibs.jsp" %>
<!-- ??head.jsp?left.jsp?footer.jsp??? -->
<html>
        <head>
                <title>JSP for loginForm form</title>
        </head>
        <body>
            <%@ include file = "loginContent.jsp" %>
        </body>
</html>
回复

使用道具 举报

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-5-30 14:45:01 | 显示全部楼层
怪事,我把两个页面整合到一起就ok了,这struts还真让人头疼,看来要好好弄清楚它的标签才行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表