图文教你整合最新版本搭建SSH框架之二:hibernate(非常详细)
来源:互联网 发布:ios游戏存档软件 编辑:程序博客网 时间:2024/06/04 18:41
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.至此项目结构如下()
- 图文教你整合最新版本搭建SSH框架之二:hibernate(非常详细)
- 图文教你整合最新版本搭建SSH框架之三:struts2(非常详细)
- 图文教你整合最新版本搭建SSH框架之一:spring(非常详细)
- SSH框架搭建详细图文教程
- SSH框架搭建详细图文教程
- SSH框架搭建 详细图文教程
- SSH框架搭建详细图文教程
- SSH框架搭建 详细图文教程
- SSH框架搭建过程---之Spring-Hibernate整合(5)
- 最新版本Spring、Hibernate、Struts框架整合
- 最新版本Spring、Hibernate、Struts框架整合
- 最新版本Spring、Hibernate、Struts框架整合
- 最新版本Spring、Hibernate、Struts框架整合
- 最新版本Spring、Hibernate、Struts框架整合
- 最新版本Spring、Hibernate、Struts框架整合
- SSH整合之框架搭建
- SSH整合之框架搭建 .
- ssh框架整合之hibernate整合
- 每天一个Linux命令(13):less
- hdu 4461 The Power of Xiangqi(简单模拟)
- 贝叶斯分类器(中)
- js对象之间的继承
- 博客开张
- 图文教你整合最新版本搭建SSH框架之二:hibernate(非常详细)
- 蛇形填数
- JS封装继承函数
- 淘宝商品块,鼠标移上去改变边框样式的写法
- ES6--字符串、正则、数值、数组的扩展
- JS原型学习笔记
- Python登录并获取CSDN博客所有文章列表
- Python学习之基础知识
- jzoj3749【Srm590】Fox And City(fox)