﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-叶明的javablog-随笔分类-hibernate</title><link>http://www.blogjava.net/guming123416/category/6975.html</link><description>java学习天堂,个人关于JAVA的论坛bbs.javaworker.cn,欢迎大家访问</description><language>zh-cn</language><lastBuildDate>Wed, 29 Aug 2007 04:40:21 GMT</lastBuildDate><pubDate>Wed, 29 Aug 2007 04:40:21 GMT</pubDate><ttl>60</ttl><item><title>使用DBCP建立的连接池。（直接使用在应用程序用）</title><link>http://www.blogjava.net/guming123416/archive/2007/08/28/140313.html</link><dc:creator>lovajava_ye</dc:creator><author>lovajava_ye</author><pubDate>Tue, 28 Aug 2007 01:47:00 GMT</pubDate><guid>http://www.blogjava.net/guming123416/archive/2007/08/28/140313.html</guid><wfw:comment>http://www.blogjava.net/guming123416/comments/140313.html</wfw:comment><comments>http://www.blogjava.net/guming123416/archive/2007/08/28/140313.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guming123416/comments/commentRss/140313.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guming123416/services/trackbacks/140313.html</trackback:ping><description><![CDATA[<p>由于在JAVA自动获得新闻，没有建立web的环境，将建立的服务器放置在一台服务器上，数据库放在另一台服务器上，结果造成使用JDBC速度缓慢，因此修改成连接池：<br><br>import java.sql.Connection;<br>import java.sql.DriverManager;<br>import java.sql.SQLException;</p>
<p>import org.apache.commons.dbcp.ConnectionFactory;<br>import org.apache.commons.dbcp.DriverManagerConnectionFactory;<br>import org.apache.commons.dbcp.PoolableConnectionFactory;<br>import org.apache.commons.dbcp.PoolingDriver;<br>import org.apache.commons.pool.ObjectPool;<br>import org.apache.commons.pool.impl.GenericObjectPool;<br>import org.apache.log4j.Logger;</p>
<p>/**<br>&nbsp;* @author Administrator<br>&nbsp;*<br>&nbsp;*/<br>public class DBConnectionFactory {<br>&nbsp;/**<br>&nbsp; * Logger for this class<br>&nbsp; */<br>&nbsp;private static final Logger logger = Logger<br>&nbsp;&nbsp;&nbsp;.getLogger(DBConnectionFactory.class);</p>
<p>&nbsp;private static ObjectPool connectionPool=null; <br>&nbsp;private static String sqlJdbc = ""; <br>&nbsp;&nbsp;&nbsp; private static String sqlUser = ""; <br>&nbsp;&nbsp;&nbsp; private static String sqlPwd = ""; <br>&nbsp;&nbsp;&nbsp; @SuppressWarnings("unchecked")<br>&nbsp;private static Class driverClass=null; </p>
<p><br>&nbsp;&nbsp;&nbsp; public static void proDBConnectionFactory(){<br>&nbsp;&nbsp;&nbsp; &nbsp;if(sqlJdbc.equals("")){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;sqlJdbc = "jdbc:jtds:sqlserver://27.0.0.1:1433/finance;tds=8.0;lastupdatecount=true";<br>&nbsp;&nbsp;&nbsp; &nbsp;}<br>&nbsp;&nbsp;&nbsp; &nbsp;if(sqlUser.equals("")){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;sqlUser = "sa";<br>&nbsp;&nbsp;&nbsp; &nbsp;}<br>&nbsp;&nbsp;&nbsp; &nbsp;if(sqlPwd.equals("")){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;sqlPwd = "11111";<br>&nbsp;&nbsp;&nbsp; &nbsp;}<br>&nbsp;&nbsp;&nbsp; &nbsp;initDataSource();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; public synchronized static void initDataSource(){ <br>&nbsp;&nbsp;&nbsp; &nbsp; if(driverClass == null){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;driverClass = Class.forName("net.sourceforge.jtds.jdbc.Driver");<br>&nbsp;&nbsp;&nbsp;} catch (ClassNotFoundException e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;logger.error("在注册驱动名称的时间发生错误："+e.getMessage(),e);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp; &nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp; if(connectionPool == null){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; setupDriver(sqlJdbc);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; //printDriverStats(); <br>&nbsp;&nbsp;&nbsp; &nbsp; }else{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; System.out.print("连接池已经存在");<br>&nbsp;&nbsp;&nbsp; &nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp; try { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // printDriverStats(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; public static Connection getConn(){<br>&nbsp;&nbsp;&nbsp; &nbsp; proDBConnectionFactory();<br>&nbsp;&nbsp;&nbsp; &nbsp; Connection conn = null;<br>&nbsp;&nbsp;&nbsp; &nbsp; try { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn = DriverManager.getConnection("jdbc:apache:commons:dbcp:FinanceDBPool"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch(SQLException e) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return conn; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; public static void printDriverStats() throws Exception { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ObjectPool connectionPool = driver.getConnectionPool("FinanceDBPool"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("活动的连接: " + connectionPool.getNumActive()); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("空闲的连接: " + connectionPool.getNumIdle()); <br>&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; public static void setupDriver(String connectURI){<br>&nbsp;&nbsp;&nbsp; &nbsp; try {<br>&nbsp;&nbsp;&nbsp;connectionPool = new GenericObjectPool(null); <br>&nbsp;&nbsp;&nbsp; ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectURI,sqlUser,sqlPwd); <br>&nbsp;&nbsp;&nbsp; @SuppressWarnings("unused")<br>&nbsp;&nbsp;&nbsp;PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory,connectionPool,null,null,false,true); <br>&nbsp;&nbsp;&nbsp; Class.forName("org.apache.commons.dbcp.PoolingDriver"); <br>&nbsp;&nbsp;&nbsp; PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");<br>&nbsp;&nbsp;&nbsp; //driver.registerPool("FinanceDBPool",connectionPool);<br>&nbsp;&nbsp;&nbsp; driver.registerPool("FinanceDBPool",connectionPool);</p>
<p>&nbsp;&nbsp;} catch (ClassNotFoundException e) {<br>&nbsp;&nbsp;&nbsp;logger.error("注册连接池的时间发生错误:"+e.getMessage(),e);<br>&nbsp;&nbsp;} catch (SQLException e) {<br>&nbsp;&nbsp;&nbsp;logger.error("注册连接池的时间发生错误:"+e.getMessage(),e);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;</p>
<img src ="http://www.blogjava.net/guming123416/aggbug/140313.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guming123416/" target="_blank">lovajava_ye</a> 2007-08-28 09:47 <a href="http://www.blogjava.net/guming123416/archive/2007/08/28/140313.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>这段时间开始研究hibernate，开始了解最新的hibernate技术（问题一）Hibernate的No CurrentSessionContext configured 解决方案</title><link>http://www.blogjava.net/guming123416/archive/2007/05/10/116458.html</link><dc:creator>lovajava_ye</dc:creator><author>lovajava_ye</author><pubDate>Thu, 10 May 2007 05:19:00 GMT</pubDate><guid>http://www.blogjava.net/guming123416/archive/2007/05/10/116458.html</guid><wfw:comment>http://www.blogjava.net/guming123416/comments/116458.html</wfw:comment><comments>http://www.blogjava.net/guming123416/archive/2007/05/10/116458.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guming123416/comments/commentRss/116458.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guming123416/services/trackbacks/116458.html</trackback:ping><description><![CDATA[<p>今天按照满江红翻译的hibernate文档来做第一个简单的程序，却出现No CurrentSessionContext configured 问题。在google上搜索，却发现是<br>是由于没有配置：current_session_context_class<br>在hibernate的配置文件中增加&lt;property name="current_session_context_class"&gt;thread&lt;/property&gt;<br>原因：当你使用 Hibernate session factory的getCurrentSession() 函数时候，你可能见到过"No CurrentSessionContext configured!" </p>
<p>出现这个问题，是因为你没有正确配置 Hibernate internal session context management .<br></p>
<img src ="http://www.blogjava.net/guming123416/aggbug/116458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guming123416/" target="_blank">lovajava_ye</a> 2007-05-10 13:19 <a href="http://www.blogjava.net/guming123416/archive/2007/05/10/116458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>