您的位置:首页 > 数据库 > MySQL

图文教你整合最新版本搭建SSH框架之二:hibernate(非常详细)

2017-04-08 18:12 465 查看

SSH框架搭建

由于配置过程会使用到很多图片,如果都写在一篇的话,会显得过于冗长,因此搭建过程分为几个博文来写,最终的框架项目我放到整合的那一篇博文中

配置hibernate

1.首先找到官网,百度输入hibernate下载搜索即可



2.选择最新版本的stable 5.2.9.Final点击下载即可



3.下载完后我们得到一个文件包



4.另外,我们还需要下载mysql-connector,这个可以百度搜索mysql jar



然后选择第二个下载即可



4.打开我们的之前配置spring的Eclipse项目,在WEB-INF下->lib下创建一个文件夹hibernate-5.2.9和mysql-connector-5.1.41,将我们之前下载的文件包下的required文件夹下的全部jar复制到hibernate-5.2.9下面,并将mysql-connector文件放到我们项目的mysql-connector-5.1.41下面,接着和spring配置一样需要将这些jar配置到项目中



5.至此jar配置完成,接下来我们建立一个数据库webdb,并在该数据库下面建立一个表user



hibernate需要一个配置文件hibernate.cfg.xml,我们在之前下载的文件包下搜索hibernate.cfg.xml,选择第二个文件打开,得到一个配置文件模板

对模板加以修改,src下新建hibernate.cfg.xml,将修改后的内容复制过去

原先模板为:

<?xml version='1.0' encoding='utf-8'?>
<!--
~ Hibernate, Relational Persistence for Idiomatic Java
~
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
-->
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

<!-- Database connection settings -->
<property name="connection.driver_class">org.h2.Driver</property>
<property name="connection.url">jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;MVCC=TRUE</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>

<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.H2Dialect</property>

<!-- Disable the second-level cache  -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>

<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>

<!-- Names the annotated entity class -->
<mapping class="org.hibernate.tutorial.annotations.Event"/>

</session-factory>

</hibernate-configuration>


修改后为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>

<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/webdb?characterEncoding=UTF8</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>

<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- Disable the second-level cache  -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>

<!-- Drop and re-create the database schema on startup -->
<!-- 自动创建|更新|验证数据库表结构,如果不需要的话设为none最好,如果发现数据库表丢失就检查该配置 -->
<property name="hbm2ddl.auto">none</property>

<!-- 指定映射文件 -->
<mapping resource="mapping.xml"/>
</session-factory>
</hibernate-configuration>


8.在src下新建一个包pers.zzf.domain(用来存放JavaBean),在下面建立一个User.java,对应我们之前建立的数据库表,内容如下

package pers.zzf.domain;

public class User {
private String name;
private String password;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}


9.在src下新建mapping.xml,内容如下(这个可以在hibernate文件包中搜索Event.hbm.xml,找到相应的模板并做修改)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 对应我们之前创建的数据库表 -->
<class name="pers.zzf.domain.User" table="user">
<id name="name" column="name"></id>
<property name="password" column="password"/>
</class>

</hibernate-mapping>


10.在pers.zzf.test下新建一个HibernateTest.java(其中获得SessionFactory的方法是参考官方文档所写的),内容如下

package pers.zzf.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

import pers.zzf.domain.User;

public class HibernateTest {
//官方文档中获得SessionFactory的一种方式
private static SessionFactory getSessionFactory() {
SessionFactory sessionFactory = null;
//默认加载地址是在src下搜索hibernate.cfg.xml
StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure().build();
try {
sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
StandardServiceRegistryBuilder.destroy(registry);
}
return sessionFactory;
}

public static void main(String... args) {
// 创建一个User对象
User user = new User();
// 设置属性值
user.setName("ZZF");
user.setPassword("ZZF");
// 获得session
Session session = getSessionFactory().openSession();
Transaction transaction = null;
try {
// 开始事务
transaction = session.beginTransaction();
// 保存
session.save(user);
// 提交事务
transaction.commit();
System.out.println("保存成功");
} catch (Exception e) {
// 如果发生异常则进行事务回滚
transaction.rollback();
} finally {
session.clear();
}
}
}


11.运行项目后可以到数据库中查看,发现新增了一行数据

12.至此项目结构如下()

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate 框架 ssh mysql
相关文章推荐