今天抽空看了hibernate官方文档,拿到目前最新版本4.3.8,按照官方文档调试,遇到一些问题。
在网上找答案的时候,资料很少,搜了好久,一直没找到原因。
然后,我就试着将版本降到3.6.10版本,这样一来资料多了很多,解决后,将版本升级到4.3.8,OK!
用 hibernate 3.6.10版 实现简单的demo
结构图如下:
1.JAR包
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.6.10.Final</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.1-GA</version> </dependency> </dependencies>
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"> <hibernate-configuration> <session-factory> <property name="connection.url">jdbc:mysql://ip:端口/数据库</property> <property name="connection.username">用户名</property> <property name="connection.password">密码</property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="hibernate.show_sql">true</property> <mapping resource="org/hibernate/po/Dept.hbm.xml" /> </session-factory> </hibernate-configuration>
3.*.hbm.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="org.hibernate.po.Dept" table="ROMS_SYS_DEPT"> <id name="deptId" type="java.lang.String" column="DEPT_ID"/> <property name="deptName" type="java.lang.String" column="DEPT_NAME"/> <property name="deptPid" type="java.lang.String" column="PDEPT_ID"/> </class> </hibernate-mapping>
4.PO类
public class Dept { private String deptId; private String deptName; private String deptPid; // getter,setter 省略 }
5.HibernateUtil 类
public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { SessionFactory sessionFactory = null; try { Configuration conf = new Configuration(); conf.configure(); // 装载指定的配置文件 // conf.configure(new File("abc.xml")); // 创建 SessionFactory sessionFactory = conf.buildSessionFactory(); } catch (Throwable ex) { System.err.println("Initial SessionFactory creation failed:" + ex); throw new ExceptionInInitializerError(ex); } return sessionFactory; } public static SessionFactory getSessionFactory() { return sessionFactory; } }
6.Manager处理类
public class DeptManager { public static void main(String[] args) { DeptManager mgr = new DeptManager(); mgr.createAndStoreEvent("My Event", new Date()); // HibernateUtil.getSessionFactory().close(); } private void createAndStoreEvent(String title, Date theDate) { Dept dept = new Dept(); dept.setDeptId("1111"); dept.setDeptName("测试部门"); dept.setDeptPid("000"); Session session = HibernateUtil.getSessionFactory().openSession(); Transaction tx = session.getTransaction(); // 开启事务 tx.begin(); session.save(dept); tx.commit(); session.close(); } }
7.sql
DROP TABLE IF EXISTS `ROMS_SYS_DEPT`; CREATE TABLE `ROMS_SYS_DEPT` ( `DEPT_ID` varchar(32) CHARACTER SET utf8 NOT NULL DEFAULT '', `DEPT_NAME` varchar(32) CHARACTER SET utf8 DEFAULT NULL, `PDEPT_ID` varchar(32) CHARACTER SET utf8 DEFAULT NULL, PRIMARY KEY (`DEPT_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4.3.8 版本调整的文件
1.HibernateUtil
public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { SessionFactory sessionFactory = null; try { Configuration configuration = new Configuration() .configure("hibernate.cfg.xml"); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() .applySettings(configuration.getProperties()).build(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); } catch (Throwable ex) { System.err.println("Initial SessionFactory creation failed:" + ex); throw new ExceptionInInitializerError(ex); } return sessionFactory; } public static SessionFactory getSessionFactory() { return sessionFactory; } }
2.DeptManager
public class DeptManager { public static void main(String[] args) { DeptManager mgr = new DeptManager(); // if (args[0].equals("store")) { // mgr.createAndStoreEvent("My Event", new Date()); // } mgr.createAndStoreEvent("My Event", new Date()); HibernateUtil.getSessionFactory().close(); } private void createAndStoreEvent(String title, Date theDate) { Dept dept = new Dept(); dept.setDeptId("1111"); dept.setDeptName("测试部门"); dept.setDeptPid("000"); Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); session.save(dept); session.getTransaction().commit(); } }
相关推荐
此压缩包提供的版本是Hibernate 3.6.10,这是一个稳定且功能丰富的版本,包含了对Java Persistence API(JPA)的支持。 Hibernate 3.6.10的主要特性包括: 1. **持久化模型对象**:Hibernate允许开发者定义Java类...
hibernate 3.6.10.chm
标题提到的"hibernate3.6.10.Final"是Hibernate的一个重要版本,标志着该版本经过多轮测试和修复,达到了高度稳定的状态,适合在生产环境中使用。 在描述中提到了“hibernate 3.6.10 Final版,稳定”,这表明这个...
描述中提到,这些jar包是在整合Struts2.3.15、Hibernate3.6.10和Spring 3.2.4这三个流行开源框架的过程中被确定为必需的。Struts2是一个用于构建Web应用程序的MVC框架,而Spring则是一个全面的企业级应用开发框架,...
hibernate3.6.10-Final-api.chm最新版的hibernate3.6.10chm版本的帮助文档,可以提供搜索功能
Struts2.3.16.1+Hibernate3.6.10+Spring3.2.8整合 能够运行,没有任何问题 另外附带applicationContext.xml、struts.xml、hibernate.cfg.xml
《Hibernate 3.6.10 Final 官方文档》是Java开发中极其重要的参考资料,它详尽地阐述了Hibernate框架在3.6.10版本中的各项功能、配置和使用方法。Hibernate作为一款强大的对象关系映射(ORM)工具,能够帮助开发者将...
**Hibernate 3.6.10 Final Release:Java ORM框架的里程碑** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。在这个3.6.10最终版本中,Hibernate 提供了一个稳定且...
这个“hibernate3.6.10 jar包”是Hibernate 3.6.10版本的库文件集合,包含了运行Hibernate应用程序所必需的类和资源。 在Hibernate 3.6.10版本中,有一些关键的知识点值得我们了解: 1. **实体管理**:Hibernate的...
在本资料中,“hibernate3.6.10中文api带注解”是针对Hibernate 3.6.10版本的API文档,特别的是,它是中文版的,这对于中文使用者来说,理解起来更加方便,避免了语言障碍带来的困扰。 在Hibernate 3.6.10中,主要...
spring3.0.0-hibernate4.0.0时,发现spring3.0不支持hibernate4.0版本,后来自己整合了两套版本,一个是struts2.3.7-spring3.1.0-hibernate4.0.0,将spring升级,一个是struts2.3.7-spring3.0.0-hibernate3.6.10,将...
标题“Hibernate3.6.10所需jar包”表明我们将讨论的是关于Hibernate 3.6.10版本的运行环境,这个版本发布于2012年,对于初学者或需要维护旧项目的人来说仍然具有参考价值。Hibernate 3.6.10是一个稳定的版本,提供了...
本压缩包“tom9 jdk10环境下struts2+hibernate3.6.10jar包.zip”提供了在Tomcat9服务器和JDK10环境下运行Struts2与Hibernate3.6.10所需的基础库文件。 Struts2是一款强大的MVC(Model-View-Controller)框架,用于...
hibernate-3.6.10.Final.rar,用于Java开发中的Hibernate技术
《深入剖析Hibernate 3.6.10.Final源代码》 Hibernate,作为一个开源的对象关系映射(ORM)框架,自发布以来就深受Java开发者喜爱。本文将详细探讨Hibernate 3.6.10.Final版本的源代码,揭示其内部机制,帮助读者更...
hibernate3.6.10.chm 官网
Hibernate3.6.10核心编程接口API文档
《Hibernate 3.6.10 帮助文档》是一个专门为开发者提供的关于Hibernate ORM框架的详尽指南,其以CHM(Compiled HTML Help)格式存在,便于离线查阅和快速搜索。Hibernate是一个广泛应用于Java环境中的对象关系映射...
SSH2框架搭建所需jar包,版本:struts-2.3.14+spring-2.5.6+hibernate3.6.10
hibernate-release-4.3.8.Final.part01