除之前的Spring相关包,还有structs2包外,还需要Hibernate的相关包
首先,Spring整合其他持久化层框架的JAR包 spring-orm-4.2.4.RELEASE.jar (整合Hibernate的)
这个JAR包在Spring框架中包含
Hibernate 需要的JAR包
slf4j-api-1.7.7.jar
slf4j-log4j12-1.7.1.jar
jboss-logging-3.3.0.Final.jar
jandex-2.0.3.Final.jar
hibernate-entitymanager-4.2.3.final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
hibernate-core-5.2.12.Final.jar
hibernate-commons-annotations-5.0.1.Final.jar
geronimo-jta_1.0.1b_spec-1.1.1.jar
antlr-2.7.7.jar
上面Hibernate11个包
以及前边的JAR包共计43个
下载地址如下:
链接: https://pan.baidu.com/s/1mizikiO 密码: cigf
java.lang.ClassNotFoundException: org.dom4j.io.STAXEventReader 异常
缺少了dom4j-1.6.1.jar 包
在Hibernate官方包中
包含dom4j-1.6.1.jar 的官方Hibernate整包下载地址
链接: https://pan.baidu.com/s/1c2Jbmnu 密码: 3sef
需要JAR包 classmate-1.3.0.jar
在Hibernate官方包中
注意:Hibernate的核心配置文件hibernate.cfg.xml 要在src文件夹下,不能在其下的某个包中,否则会出现
最后,Hibernate测试成功效果
不用数据库创建表,通过实体类映射文件User.hbm.xml,它的位置随意。把User类映射到数据库中
映射文件代码:
/p>
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
实体类代码如下:
packagecom.swift.entity;public classUser {privateInteger uid;privateString username;privateString address;publicString getUsername() {returnusername;
}public voidsetUsername(String username) {this.username =username;
}publicString getAddress() {returnaddress;
}public voidsetAddress(String address) {this.address =address;
}publicInteger getUid() {returnuid;
}public voidsetUid(Integer uid) {this.uid =uid;
}
}
这里要注意uid所使用的整型类型不是int,而是Integer
Hibernate核心配置文件,要在src目录下,一定注意位置,在其中指定上边的映射文件,同时连接数据库,并自动生成表。
核心配置文件hibernate.cfg.xml 代码如下:
/p>
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/lastday
root
root
true
update
org.hibernate.dialect.MySQLDialect
加载核心配置文件的测试类HibernateUtil 代码如下:
packagecom.swift.entity;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.Transaction;importorg.hibernate.cfg.Configuration;public classHibernateUtil {static SessionFactory sessionFactory=null;static Configuration cfg=null;static{//加载核心配置文件
cfg = newConfiguration();
cfg.configure();
sessionFactory=cfg.buildSessionFactory();
}public staticSessionFactory getSessionFactory(){returnsessionFactory;
}public staticSession getSession(){returnsessionFactory.getCurrentSession();
}public static voidmain(String[] args) {
}
}
数据库中查看效果
是空的,数据库中什么都没有,没有自动建成的表。
仔细检查都没有错了,排除了映射混乱问题,就是不出表,SQL语句都成功打出了,也没有任何异常。
最后参考了这个兄弟的解释
org.hibernate.dialect.MySQL57Dialect
.MySQLDialect添加了第57区的方言,就搞定了。