Hibernate 开发实例全步骤
2017-01-03 17:01
211 查看
转载:http://blog.chinaunix.net/uid-26284395-id-3048988.html
开发顺序
1 下载并安装Hibernate
2 Hibernate配置文件详解 配置与MySQL数据库的链接与映射文件User.hbm.xml
3 生成映射文件User.hbm.xml
4 编写持久化类User.java
5 编写辅助类HibernateSessionFactory.java 负责取得和关闭Hibernate的Session对象
6 编写DAO类UserDAO.java 编写根据用户名取得用户对象的getUser()
7 编写Service类UserService.java 编写valid()函数 调用UserDAO.java的getUser()函数执行函数验证
1 下载并安装Hibernate
下载hibernate-3.0.zip 将hibernate3.zip文件和lib下的所有文件都复制到新建的HibernateTest项目的lib子目录下
MySQL数据库的驱动文件复制到lib子目录下
2 hibernate.cfg.xml配置文件
<?xml
version='1.0'
encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="myeclipse.connection.profile">
JDBC for MySQL
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/demo
</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<mapping resource="com/demo/hibernate/beans/User.hbm.xml"
/>
</session-factory>
</hibernate-configuration>
使用XML文件进行配置时 指定Java类与数据库表格的映射文件位置 XML配置文件的位置必须在CLASSPATH的设定中 Web程式的WEB-INF/classes中 我们使用下面的方式读入XML文件以配置Hibernate
SessionFactory sf =
new Configuration().configure().buildSessionFactory();
Configuration表示Java类与数据库表格映射的集合 用于之后建立SessionFactory 之后Configuration就不再起作用了 预设的XML文件名称是hibernate.cfg.xml你也可以指定文件的名称
压缩包Hibernate-3.0.zip压缩包的etc子目录下提供默认的Hibernate配置文件hibernate.cfg.xml 我们要在HibernateTest中使用XML的配置文件 因此请复制该文件到HibernateTest项目的src目录下 并添加MySQL的相关配置项 这样 HibernateTest就支持Hibernate了
3 编写映射文件 User.hbm.xml
Hibernate映射文件包含了对象/关系映射所需的元数据 元数据包含持久化类的声明和属性到数据库的映射
映射文件是XML格式的文件 它负责持久化类与数据库表之间的映射 其根目录是hibernate-mapping 并通过属性package指定类所在的包 每一个表使用一个class定义 那么表示类的名称 table表示关联的表明 通过property子元素来映射类的变量名与数据库表字段名之间的映射关系
在这个HibernateTest项目中 我们建立一个映射文件User.hbm.xml来映射到数据表user 映射的类名为User 所在的包为com.demo.hibernate.beans
<?xml
version="1.0"
encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- DO NOT EDIT: This is a generated file that is synchronized -->
<!-- by MyEclipse Hibernate tool integration. -->
<!-- Created Tue Aug 14 18:57:22 CST 2007 -->
<hibernate-mapping package="com.demo.hibernate.beans">
<class name="User" table="user">
<id name="id" column="ID" type="integer">
<generator class="native"/>
</id>
<property name="username" column="username" type="string"
/>
<property name="password" column="password" type="string"
/>
<property name="email" column="email" type="string"
/>
</class>
</hibernate-mapping>
4 编写持久化类User.java
持久化类是指其实例需要被Hibernate持久化到数据库中的类 持久化通常是与模型中的实体域类 一般都是一张数据表对应一个持久化类 不能认为所有的持久化类的实例都是持久的状态 一个实例的状态也可能是瞬时的或脱管的。
在HibernateTest示例程序中 包含了一个持久化类User.java 该类包含表User的4个字段对应的变量 这些变量都申明为private类型的
package com.demo.hibernate.beans;
public class User
{
private java.lang.Integer
id;
private java.lang.String username;
private java.lang.String password;
private java.lang.String email;
public java.lang.String getEmail()
{
return email;
}
public void setEmail(java.lang.String
email) {
this.email
= email;
}
public java.lang.Integer
getId()
{
return
id;
}
public void
setId(java.lang.Integer
id)
{
this.id
= id;
}
public java.lang.String
getPassword()
{
return password;
}
public void
setPassword(java.lang.String
password) {
this.password
= password;
}
public java.lang.String
getUsername()
{
return username;
}
public void
setUsername(java.lang.String
username) {
this.username
= username;
}
}
5 编写辅助类 HibernateSessionFactory.java
Hibernate的Session 这是一个持久化管理器 通过它从数据库中存取User
首先我们要从SessionFactory中获取一个Session
SessionFactory sessionFactory
= new Configuration().configure().buildSessionFactory();
通过对configure()的调用来转载hibernate.cfg.xml配置文件 并初始化成一个Configuration实例 在创建SessionFactory之前 可以访问Configuration来设置其他属性
SessionFactory应该设置成单例模式 这样才能在程序中容易地访问SessionFactory
程序代码如下
package com.demo.hibernate.util;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
/**
* Configures and provides access to Hibernate sessions, tied to the
* current thread of execution. Follows the Thread Local Session
* pattern, see {@link http://hibernate.org/42.html}.
*/
public class HibernateSessionFactory
{
/**
* Location of hibernate.cfg.xml file.
* NOTICE: Location should be on the classpath as Hibernate uses
* #resourceAsStream style lookup for its configuration file. That
* is place the config file in a Java package - the default location
* is the default Java package.
* Examples:
*
*/
private static
String CONFIG_FILE_LOCATION
= "/hibernate.cfg.xml";
/** Holds a single instance of Session */
private static
final ThreadLocal
threadLocal =
new ThreadLocal();
/** The single instance of hibernate configuration */
private static
final Configuration cfg
= new
Configuration();
/** The single instance of hibernate SessionFactory */
private static
org.hibernate.SessionFactory sessionFactory;
/**
* Returns the ThreadLocal Session instance. Lazy initialize
* the
*
* @return Session
* @throws HibernateException
*/
public static Session currentSession()
throws HibernateException
{
Session session =
(Session) threadLocal.get();
if (session
==
null) {
if
(sessionFactory ==
null)
{
try
{
cfg.configure(CONFIG_FILE_LOCATION);
sessionFactory = cfg.buildSessionFactory();
}
catch
(Exception e)
{
System.err.println("%%%% Error
Creating SessionFactory %%%%");
e.printStackTrace();
}
}
session = sessionFactory.openSession();
threadLocal.set(session);
}
return session;
}
/**
* Close the single hibernate session instance.
*
* @throws HibernateException
*/
public static
void closeSession()
throws HibernateException
{
Session session =
(Session) threadLocal.get();
threadLocal.set(null);
if (session
!=
null) {
session.close();
}
}
/**
* Default constructor.
*/
private HibernateSessionFactory()
{
}
}
这个类不但在他的静态初始器中使用了SessionFactory 还使用了了一个ThreadLocal变量来保存Session作为当前工作线程
6 编写DAO类UserDAO.java
所谓的DAO层 就是数据访问接口 为了基于Hibernate的开发中将业务层与数据层分开 DAO层只负责处理调用Hibernate API实现CRUD操作 Service层面向用户负责调用DAO层的代码 这样做的好处是 数据层的代码不用关心业务服务 可以更好的实现移植
package com.demo.hibernate.dao;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.demo.hibernate.beans.User;
import com.demo.hibernate.util.HibernateSessionFactory;
public class UserDAO
{
public User getUser(String username)
throws HibernateException
{
Session session =
null;
Transaction tx
= null;
User user =
null;
try {
session = HibernateSessionFactory.currentSession();
tx = session.beginTransaction();
Query
query = session.createQuery("from User where username=?");
query.setString(0, username.trim());
user =
(User)query.uniqueResult();
query
= null;
tx.commit
();
}catch(HibernateException e){
throw e;
}finally{
if
(tx!=null)
{
tx.rollback();
}
HibernateSessionFactory.closeSession();
}
return user;
}
}
该类实现了一个getUser()函数 根据用户名username查询一个用户对象 在该函数中使用HibernateSessionFactory取得Session对象 然后通过session执行事务 创建查询对象 返回查询的用户对象,操作Session的代码都是Hibernate提供的API
7 编写Service类并运行
Service类即服务层 就是面向用户服务 它定义的方法都是与实际的业务相关的
此例子中 定义一个Service类UserService 他有一个函数valid() 根据用户名和密码来判断用户是否存在 改函数调用DAO层的UserDAO类来取得一个用户对象 并比较该对象的密码与输入的密码是否相等 如果相等就返回true 否则返回false 然后编写一个main()入口函数 用户调用valid()函数来执行业务的调用 并输出返回的结果
package com.demo.hibernate.service;
import com.demo.hibernate.beans.User;
import com.demo.hibernate.dao.UserDAO;
public class UserService
{
public boolean
valid(String username,
String password)
{
UserDAO test =
new UserDAO();
User user = test.getUser("admin");
if(user.getPassword().equals(password))
{
return true;
} else
{
return false;
}
}
public static
void main(String[] args)
{
UserService service =
new UserService();
boolean
login = service.valid("admin",
"admin");
System.out.println("验证结果:"+login);
}
}
接下来 运行 UserService.java 运行方式 Java应用程序 即可运行main()函数
此处记住 还要添加日志属性文件 三个日志属性文件 复制到Hibernate的src子目录下即可
运行程序 出现错误
Communication failure during handshake. Is there a server running on localhost:3306?
原因:
结果在Mysql.com的官方网站上看到这个解释,是因为新的Mysql的认证机制发生了一些变化造成的,解决方法如下
解决方法:
I'd to change the authentication method at the mysql server:
set password for @ = old_password('');
将红色那部分在cmd-mysql登录之后敲进去就解决了
假如你的用户名密码是root root 那么红色部分就是
set password for
root@localhost=old_password('root');
最后正确运行的输出信息
INFO - Hibernate 3.0.5
INFO - hibernate.properties not found
INFO - using CGLIB reflection optimizer
INFO - using JDK 1.4 java.sql.Timestamp handling
INFO - configuring from resource: /hibernate.cfg.xml
INFO - Configuration resource: /hibernate.cfg.xml
INFO - Mapping resource: com/demo/hibernate/beans/User.hbm.xml
INFO - Mapping class: com.demo.hibernate.beans.User -> user
INFO - Configured SessionFactory: null
INFO - processing extends queue
INFO - processing collection mappings
INFO - processing association property references
INFO - processing foreign key constraints
INFO - Using Hibernate built-in connection pool (not for production use!)
INFO - Hibernate connection pool size: 20
INFO - autocommit mode: false
INFO - using driver: org.gjt.mm.mysql.Driver at URL: jdbc:mysql://localhost:3306/demo
INFO - connection properties: {user=root, password=****}
INFO - RDBMS: MySQL, version: 5.5.17
INFO - JDBC driver: Mark Matthews' MySQL Driver, version: 2.0.4
INFO - Using dialect: org.hibernate.dialect.MySQLDialect
INFO - Using default transaction strategy (direct JDBC transactions)
INFO - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
INFO - Automatic flush during beforeCompletion(): disabled
INFO - Automatic session close at end of transaction: disabled
INFO - Scrollable result sets: enabled
INFO - JDBC3 getGeneratedKeys(): disabled
INFO - Connection release mode: null
INFO - Maximum outer join fetch depth: 2
INFO - Default batch fetch size: 1
INFO - Generate SQL with comments: disabled
INFO - Order SQL updates by primary key: disabled
INFO - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
INFO - Using ASTQueryTranslatorFactory
INFO - Query language substitutions: {}
INFO - Second-level cache: enabled
INFO - Query cache: disabled
INFO - Cache provider: org.hibernate.cache.EhCacheProvider
INFO - Optimize cache for minimal puts: disabled
INFO - Structured second-level cache entries: disabled
INFO - Statistics: disabled
INFO - Deleted entity synthetic identifier rollback: disabled
INFO - Default entity-mode: pojo
INFO - building session factory
WARN - No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/F:/eeeeeee/HibernateTest/WebRoot/WEB-INF/lib/ehcache-1.1.jar!/ehcache-failsafe.xml
INFO - Not binding factory to JNDI, no JNDI name configured
INFO - Checking 0 named queries
验证结果:true
开发顺序
1 下载并安装Hibernate
2 Hibernate配置文件详解 配置与MySQL数据库的链接与映射文件User.hbm.xml
3 生成映射文件User.hbm.xml
4 编写持久化类User.java
5 编写辅助类HibernateSessionFactory.java 负责取得和关闭Hibernate的Session对象
6 编写DAO类UserDAO.java 编写根据用户名取得用户对象的getUser()
7 编写Service类UserService.java 编写valid()函数 调用UserDAO.java的getUser()函数执行函数验证
1 下载并安装Hibernate
下载hibernate-3.0.zip 将hibernate3.zip文件和lib下的所有文件都复制到新建的HibernateTest项目的lib子目录下
MySQL数据库的驱动文件复制到lib子目录下
2 hibernate.cfg.xml配置文件
<?xml
version='1.0'
encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="myeclipse.connection.profile">
JDBC for MySQL
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/demo
</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<mapping resource="com/demo/hibernate/beans/User.hbm.xml"
/>
</session-factory>
</hibernate-configuration>
使用XML文件进行配置时 指定Java类与数据库表格的映射文件位置 XML配置文件的位置必须在CLASSPATH的设定中 Web程式的WEB-INF/classes中 我们使用下面的方式读入XML文件以配置Hibernate
SessionFactory sf =
new Configuration().configure().buildSessionFactory();
Configuration表示Java类与数据库表格映射的集合 用于之后建立SessionFactory 之后Configuration就不再起作用了 预设的XML文件名称是hibernate.cfg.xml你也可以指定文件的名称
压缩包Hibernate-3.0.zip压缩包的etc子目录下提供默认的Hibernate配置文件hibernate.cfg.xml 我们要在HibernateTest中使用XML的配置文件 因此请复制该文件到HibernateTest项目的src目录下 并添加MySQL的相关配置项 这样 HibernateTest就支持Hibernate了
3 编写映射文件 User.hbm.xml
Hibernate映射文件包含了对象/关系映射所需的元数据 元数据包含持久化类的声明和属性到数据库的映射
映射文件是XML格式的文件 它负责持久化类与数据库表之间的映射 其根目录是hibernate-mapping 并通过属性package指定类所在的包 每一个表使用一个class定义 那么表示类的名称 table表示关联的表明 通过property子元素来映射类的变量名与数据库表字段名之间的映射关系
在这个HibernateTest项目中 我们建立一个映射文件User.hbm.xml来映射到数据表user 映射的类名为User 所在的包为com.demo.hibernate.beans
<?xml
version="1.0"
encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- DO NOT EDIT: This is a generated file that is synchronized -->
<!-- by MyEclipse Hibernate tool integration. -->
<!-- Created Tue Aug 14 18:57:22 CST 2007 -->
<hibernate-mapping package="com.demo.hibernate.beans">
<class name="User" table="user">
<id name="id" column="ID" type="integer">
<generator class="native"/>
</id>
<property name="username" column="username" type="string"
/>
<property name="password" column="password" type="string"
/>
<property name="email" column="email" type="string"
/>
</class>
</hibernate-mapping>
4 编写持久化类User.java
持久化类是指其实例需要被Hibernate持久化到数据库中的类 持久化通常是与模型中的实体域类 一般都是一张数据表对应一个持久化类 不能认为所有的持久化类的实例都是持久的状态 一个实例的状态也可能是瞬时的或脱管的。
在HibernateTest示例程序中 包含了一个持久化类User.java 该类包含表User的4个字段对应的变量 这些变量都申明为private类型的
package com.demo.hibernate.beans;
public class User
{
private java.lang.Integer
id;
private java.lang.String username;
private java.lang.String password;
private java.lang.String email;
public java.lang.String getEmail()
{
return email;
}
public void setEmail(java.lang.String
email) {
this.email
= email;
}
public java.lang.Integer
getId()
{
return
id;
}
public void
setId(java.lang.Integer
id)
{
this.id
= id;
}
public java.lang.String
getPassword()
{
return password;
}
public void
setPassword(java.lang.String
password) {
this.password
= password;
}
public java.lang.String
getUsername()
{
return username;
}
public void
setUsername(java.lang.String
username) {
this.username
= username;
}
}
5 编写辅助类 HibernateSessionFactory.java
Hibernate的Session 这是一个持久化管理器 通过它从数据库中存取User
首先我们要从SessionFactory中获取一个Session
SessionFactory sessionFactory
= new Configuration().configure().buildSessionFactory();
通过对configure()的调用来转载hibernate.cfg.xml配置文件 并初始化成一个Configuration实例 在创建SessionFactory之前 可以访问Configuration来设置其他属性
SessionFactory应该设置成单例模式 这样才能在程序中容易地访问SessionFactory
程序代码如下
package com.demo.hibernate.util;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
/**
* Configures and provides access to Hibernate sessions, tied to the
* current thread of execution. Follows the Thread Local Session
* pattern, see {@link http://hibernate.org/42.html}.
*/
public class HibernateSessionFactory
{
/**
* Location of hibernate.cfg.xml file.
* NOTICE: Location should be on the classpath as Hibernate uses
* #resourceAsStream style lookup for its configuration file. That
* is place the config file in a Java package - the default location
* is the default Java package.
* Examples:
*
CONFIG_FILE_LOCATION = "/hibernate.conf.xml".
* CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".
*/
private static
String CONFIG_FILE_LOCATION
= "/hibernate.cfg.xml";
/** Holds a single instance of Session */
private static
final ThreadLocal
threadLocal =
new ThreadLocal();
/** The single instance of hibernate configuration */
private static
final Configuration cfg
= new
Configuration();
/** The single instance of hibernate SessionFactory */
private static
org.hibernate.SessionFactory sessionFactory;
/**
* Returns the ThreadLocal Session instance. Lazy initialize
* the
SessionFactoryif needed.
*
* @return Session
* @throws HibernateException
*/
public static Session currentSession()
throws HibernateException
{
Session session =
(Session) threadLocal.get();
if (session
==
null) {
if
(sessionFactory ==
null)
{
try
{
cfg.configure(CONFIG_FILE_LOCATION);
sessionFactory = cfg.buildSessionFactory();
}
catch
(Exception e)
{
System.err.println("%%%% Error
Creating SessionFactory %%%%");
e.printStackTrace();
}
}
session = sessionFactory.openSession();
threadLocal.set(session);
}
return session;
}
/**
* Close the single hibernate session instance.
*
* @throws HibernateException
*/
public static
void closeSession()
throws HibernateException
{
Session session =
(Session) threadLocal.get();
threadLocal.set(null);
if (session
!=
null) {
session.close();
}
}
/**
* Default constructor.
*/
private HibernateSessionFactory()
{
}
}
这个类不但在他的静态初始器中使用了SessionFactory 还使用了了一个ThreadLocal变量来保存Session作为当前工作线程
6 编写DAO类UserDAO.java
所谓的DAO层 就是数据访问接口 为了基于Hibernate的开发中将业务层与数据层分开 DAO层只负责处理调用Hibernate API实现CRUD操作 Service层面向用户负责调用DAO层的代码 这样做的好处是 数据层的代码不用关心业务服务 可以更好的实现移植
package com.demo.hibernate.dao;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.demo.hibernate.beans.User;
import com.demo.hibernate.util.HibernateSessionFactory;
public class UserDAO
{
public User getUser(String username)
throws HibernateException
{
Session session =
null;
Transaction tx
= null;
User user =
null;
try {
session = HibernateSessionFactory.currentSession();
tx = session.beginTransaction();
Query
query = session.createQuery("from User where username=?");
query.setString(0, username.trim());
user =
(User)query.uniqueResult();
query
= null;
tx.commit
();
}catch(HibernateException e){
throw e;
}finally{
if
(tx!=null)
{
tx.rollback();
}
HibernateSessionFactory.closeSession();
}
return user;
}
}
该类实现了一个getUser()函数 根据用户名username查询一个用户对象 在该函数中使用HibernateSessionFactory取得Session对象 然后通过session执行事务 创建查询对象 返回查询的用户对象,操作Session的代码都是Hibernate提供的API
7 编写Service类并运行
Service类即服务层 就是面向用户服务 它定义的方法都是与实际的业务相关的
此例子中 定义一个Service类UserService 他有一个函数valid() 根据用户名和密码来判断用户是否存在 改函数调用DAO层的UserDAO类来取得一个用户对象 并比较该对象的密码与输入的密码是否相等 如果相等就返回true 否则返回false 然后编写一个main()入口函数 用户调用valid()函数来执行业务的调用 并输出返回的结果
package com.demo.hibernate.service;
import com.demo.hibernate.beans.User;
import com.demo.hibernate.dao.UserDAO;
public class UserService
{
public boolean
valid(String username,
String password)
{
UserDAO test =
new UserDAO();
User user = test.getUser("admin");
if(user.getPassword().equals(password))
{
return true;
} else
{
return false;
}
}
public static
void main(String[] args)
{
UserService service =
new UserService();
boolean
login = service.valid("admin",
"admin");
System.out.println("验证结果:"+login);
}
}
接下来 运行 UserService.java 运行方式 Java应用程序 即可运行main()函数
此处记住 还要添加日志属性文件 三个日志属性文件 复制到Hibernate的src子目录下即可
运行程序 出现错误
Communication failure during handshake. Is there a server running on localhost:3306?
原因:
结果在Mysql.com的官方网站上看到这个解释,是因为新的Mysql的认证机制发生了一些变化造成的,解决方法如下
解决方法:
I'd to change the authentication method at the mysql server:
set password for @ = old_password('');
将红色那部分在cmd-mysql登录之后敲进去就解决了
假如你的用户名密码是root root 那么红色部分就是
set password for
root@localhost=old_password('root');
最后正确运行的输出信息
INFO - Hibernate 3.0.5
INFO - hibernate.properties not found
INFO - using CGLIB reflection optimizer
INFO - using JDK 1.4 java.sql.Timestamp handling
INFO - configuring from resource: /hibernate.cfg.xml
INFO - Configuration resource: /hibernate.cfg.xml
INFO - Mapping resource: com/demo/hibernate/beans/User.hbm.xml
INFO - Mapping class: com.demo.hibernate.beans.User -> user
INFO - Configured SessionFactory: null
INFO - processing extends queue
INFO - processing collection mappings
INFO - processing association property references
INFO - processing foreign key constraints
INFO - Using Hibernate built-in connection pool (not for production use!)
INFO - Hibernate connection pool size: 20
INFO - autocommit mode: false
INFO - using driver: org.gjt.mm.mysql.Driver at URL: jdbc:mysql://localhost:3306/demo
INFO - connection properties: {user=root, password=****}
INFO - RDBMS: MySQL, version: 5.5.17
INFO - JDBC driver: Mark Matthews' MySQL Driver, version: 2.0.4
INFO - Using dialect: org.hibernate.dialect.MySQLDialect
INFO - Using default transaction strategy (direct JDBC transactions)
INFO - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
INFO - Automatic flush during beforeCompletion(): disabled
INFO - Automatic session close at end of transaction: disabled
INFO - Scrollable result sets: enabled
INFO - JDBC3 getGeneratedKeys(): disabled
INFO - Connection release mode: null
INFO - Maximum outer join fetch depth: 2
INFO - Default batch fetch size: 1
INFO - Generate SQL with comments: disabled
INFO - Order SQL updates by primary key: disabled
INFO - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
INFO - Using ASTQueryTranslatorFactory
INFO - Query language substitutions: {}
INFO - Second-level cache: enabled
INFO - Query cache: disabled
INFO - Cache provider: org.hibernate.cache.EhCacheProvider
INFO - Optimize cache for minimal puts: disabled
INFO - Structured second-level cache entries: disabled
INFO - Statistics: disabled
INFO - Deleted entity synthetic identifier rollback: disabled
INFO - Default entity-mode: pojo
INFO - building session factory
WARN - No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/F:/eeeeeee/HibernateTest/WebRoot/WEB-INF/lib/ehcache-1.1.jar!/ehcache-failsafe.xml
INFO - Not binding factory to JNDI, no JNDI name configured
INFO - Checking 0 named queries
验证结果:true
相关文章推荐
- Struts+Spring+Hibernate开发实例
- 关于使用Spring和hibernate开发web程序的配置说明和简单实例的详细说明
- Spring+Hibernate集成开发只1对多实例
- Spring+Hibernate+Strust 整合开发步骤
- 利用Hibernate开发Blog实例分析
- Struts+Spring+Hibernate开发实例
- J2EE框架(TomcatStrutsHibernateSpringAjax(dojo))开发步骤:
- spring中的hibernate开发---实例讲解
- 开发框架hibernate3.0开发实例
- spring WEB MVC + Spring + hibernate开发web程序的配置说明和简单实例的详细说明
- spring中的hibernate开发---实例讲解
- spring hibernate struts整合开发实例
- Struts+Spring+Hibernate开发实例
- 安装rails及生成小实例步骤(后续)_采用RadRails开发
- spring hibernate struts整合开发实例
- Struts+Spring+Hibernate开发实例
- Struts+Spring+Hibernate开发实例
- spring hibernate struts整合开发实例
- Struts+Spring+Hibernate开发实例
- WebService开发实例 (Xfire+Spring+Hibernate)