用Hibernate自带的连接池性能不太高,而且还存在BUG。因此官方推荐使用c3p0或Proxool连接池。
这里我介绍Hibernate使用Proxool连接池的配置:
首先配置Proxool的配置文件,文件名:Proxool.xml(当然,你也可以用资源文件)
这里我介绍Hibernate使用Proxool连接池的配置:
首先配置Proxool的配置文件,文件名: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>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
Tags: Proxool
前段时间刚完成一个家教网项目,数据库为MySQL5.0,持久层使用Hibernate 3.1,没有使用额外的连接池,那么Hibernate会默认使用它自带的一个默认连接池,也就是DriverManagerConnectionProvider。
先在本机上调试都毫无问题,于是部署到服务器上,也都没什么问题。由于这是新网站,根本还没正式对外发布和宣传,所以头两天根本没人访问。等到第二天,我再次访问网站时,问题就出现了,错误信息如下:
先在本机上调试都毫无问题,于是部署到服务器上,也都没什么问题。由于这是新网站,根本还没正式对外发布和宣传,所以头两天根本没人访问。等到第二天,我再次访问网站时,问题就出现了,错误信息如下:
引用内容
root cause
javax.servlet.ServletException: org.hibernate.exception.JDBCConnectionException: could not execute query
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
javax.servlet.ServletException: org.hibernate.exception.JDBCConnectionException: could not execute query
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
BIT和TINYINT字段类型在hibernate中的使用区别
其实我也解释不明白,演示例子如下:
数据库中有记录一些记录,它们的字段state内容里都是为true
其实我也解释不明白,演示例子如下:
数据库中有记录一些记录,它们的字段state内容里都是为true
复制内容到剪贴板 程序代码
String hql = "from News as a where a.catalog in(17,205) order by a.id desc ";
ArticleService s = new ArticleService();
List list = s.getListQuery(hql);
ArticleService s = new ArticleService();
List list = s.getListQuery(hql);
在37.4节给出的XML映射文件设置口诀:“以实体类的字段为依据来配置XML映射文件:类的字段有则映射有、类的字段无则映射无”,这实际上是“实体类↔XML映射↔数据库表”这3者之间对应关系的一个反映。通过本节的学习,读者会发现,这3者之间是可以互相用工具来转化的。
37.8.1 由XML映射文件生成数据库表(V009)
Hibernate可以由XML映射文件自动生成数据库表,这简化了创建表格的工作。具体实现方法如下:
(1)将以下两种方法添加到HibernateUtil类中。
// 创建数据库表。如果表存在将会被删除重建,同时sql语句输出到c:\sms.sql
public static void createDbTable() throws HibernateException {
Configuration conf = new Configuration().configure();
SchemaExport dbExport = new SchemaExport(conf);
dbExport.setOutputFile("c:\\sms.sql");
dbExport.create(true, true);
}
Tags: 建表
复制内容到剪贴板 程序代码
public List getMaxRsRandArticle(String hql, int num) {
List list = new ArrayList();
Transaction tx = null;
Session session = HibernateUtil.getSession();
try {
tx = session.beginTransaction();
Query query = session.createQuery(hql);
log.info("随机HQL:"+hql);
List list = new ArrayList();
Transaction tx = null;
Session session = HibernateUtil.getSession();
try {
tx = session.beginTransaction();
Query query = session.createQuery(hql);
log.info("随机HQL:"+hql);