本节将開始。使用hibernate搭建持久层。当然在决定用不用之前,还请斟酌一下是否使用。了解一下Hibernate的优缺点。

Hibernate优劣对照

Hibernate是一个持久的ORM框架。首先要简历一个Java Project  这个就不用多说了吧。之后。我们来搭建Hibernate框架。

第一步:引入相关Jar包。包括两部分,核心jar包(Hibernate_Home/hibernate3.jar)和相关包(Hibernate_Home/lib/*.jar)
如上图。

假设没有,请去下载Hibernate。解压之后 如图:

第二步:建立实体类*.java

package com.bjpowernode.hibernate;

import java.util.Date;

public class User {

	//主键
private String id;
//名称
private String name;
//密码
private String password; //提供getter和setter方法
public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} 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;
} }

第三步:提供*.hbm.xml文件,该文件能够说是实体生成表的配置文件。Hibernate会依据你写的实体类和对应的映射文件生成数据库表。

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
<class name="com.bjpowernode.hibernate.User">
<id name="id">
<generator class="uuid"/>
</id>
<property name="name"/>
<property name="password"/>
<property name="createTime"/>
<property name="expireTime"/>
</class>
</hibernate-mapping>

第四步:提供hibernate.cfg.xml文件,完毕主要的配置信息。并将*.hbm.xml文件配置进入。(能够參考并改动成自己的)依据自己的需求进行取舍。

cfg.xml是整个Hibernate的入口配置

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<session-factory>
<!-- Hibernate要连接数据库的驱动。(此处使用mysql的,假设使用的替他数据库的,请上网查找) -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 指定连接数据库的url,此处数据库名为:hibernate_demo -->
<property name="hibernate.connection.url">jdbc:mysql:///hibernate_demo</property>
<!-- 数据库的username与password -->
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<!-- 数据库的方言(用于将对象模型的存储生成对应的sql语句) -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 该项为true,当与数据库交互的时候,将在Console中打印 sql语句,方便学习 -->
<property name="hibernate.show_sql">true</property>
<!-- 指定连接池里最大连接数 -->
<property name="hibernate.c3p0.max_size">20</property>
<!-- 指定连接池里最小连接数 -->
<property name="hibernate.c3p0.min_size">1</property>
<!-- 指定连接池里连接的超时时长 -->
<property name="hibernate.c3p0.timeout">5000</property>
<!-- 配置此属性,程序会依据须要自己主动创建表 -->
<property name="hbm2ddl.auto">update</property>
<!-- 显示Hibernate持久化操作所生成的SQL -->
<property name="show_sql">true</property>
<!-- 将SQL脚本进行格式化后再输出 -->
<property name="hibernate.format_sql">true</property> <!-- 列出每一个要映射的 类 -->
<mapping resource="com/bjpowernode/hibernate/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>

使用工具类。将已经生成的实体类,映射到数据库中(生成数据库表)

假设使用了设置了<propertyname="hbm2ddl.auto">update</property> 那么就不用写工具类了。

注意:数据库须要手动建立。

Hibernate的一个特点,耦合性低,easy单元測试。所以最好建立一个单元測试类。測试一下代码的连通性。

第五步:写单元測试类。调试是否成功。也是检验代码的质量

package com.bjpowernode.hibernate;
import org.hibernate.Session;
import junit.framework.TestCase; public class UserTest extends TestCase { public void testSave1(){
Session session=null;
try{
session=HibernateUtils.getSession();
//开启事务
session.beginTransaction(); User user=new User();
user.setName("张三");
user.setPassword("123456"); //事务提交
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
//事务回滚
session.getTransaction().rollback();
}finally{
//关闭Session
HibernateUtils.closeSession(session);
} } }

通过上面几个步骤,将Hibernate的架构搭建起来。通过自測的方式逐步开发。Hibernate的核心就是OR的转换。即编写hbm映射文件。接下来,我们会在兴许解说

ORM进阶:Hibernate框架搭建及开发的更多相关文章

  1. SSH(Struts2+Spring+Hibernate)框架搭建流程<注解的方式创建Bean>

    此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblo ...

  2. javaWeb项目(SSH框架+AJAX+百度地图API+Oracle数据库+MyEclipse+Tomcat)之二 基础Hibernate框架搭建篇

    我们在搭建完Struts框架之后,从前台想后端传送数据就显得非常简单了.Struts的功能不仅仅是一个拦截器,这只是它的核心功能,此外我们也可以自定义拦截器,和通过注解的方式来更加的简化代码. 接下来 ...

  3. 基于Maven的S2SH(Struts2+Spring+Hibernate)框架搭建

    1. 前言 基于Maven的开发方式开发项目已经成为主流.Maven能很好的对项目的层次及依赖关系进行管理.方便的解决大型项目中复杂的依赖关系.S2SH(Struts2+Spring+Hibernat ...

  4. Hibernate框架搭建实例

    一,Hibernate是一个持久层,是一个专门负责管理数据库连接的框架: 二,Hibernate的搭建实例: 1.在Hibernate的官方网站(http://www.hibernate.org)可以 ...

  5. hibernate框架搭建

    hibernate框架的搭建步骤: 1.导包 2.创建数据库准备表 3.书写orm元数据(对象与表的映射配置文件) 4.书写配置文件 5.书写代码测试 一.导包: 创建web-maven工程添加hib ...

  6. 在Eclipse中使用Struts和Hibernate框架搭建Maven Web项目

    前言 学习使用Java还是2012年的事情,刚开始学习的Java的时候,使用的是MyEclipse工具和SSH框架.初学者适合使用MyEclipse,因为他将struts.Spring和Hiberna ...

  7. SSH(Struts2+Spring+Hibernate)框架搭建流程

    添加支持 我先介绍的是MyEclipse9的自带框架支持搭建过程:(完全的步骤 傻瓜式的学习..~) 首先我们来搭建一个Web项目: 一.Hibernate(数据层)的搭建: 相关描述 Ⅰ.服务器与数 ...

  8. spring+struts2+hibernate框架搭建(Maven工程)

    搭建Spring 1.porm.xml中添加jar包 <!-- spring3 --> <dependency> <groupId>org.springframew ...

  9. hibernate 框架搭建

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自 ...

随机推荐

  1. E20170829-mk

    Parse   vt. 从语法上描述或分析(词句等); serial    adj. 连续的; 连载的; 顺序排列的; 分期偿付的; MultiThread n. 多线程; 多流; concurren ...

  2. E20170816-mk

    deque 即双端队列.是一种具有队列和栈的性质的数据结构. revert  vi. 恢复; 重提; 回到…上; <律>归还;   n. 归属; 恢复原来信仰的人; Indicator   ...

  3. bzoj1705[Usaco2007 Nov]Telephone Wire 架设电话线(dp优化)

    1705: [Usaco2007 Nov]Telephone Wire 架设电话线 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 441  Solved: ...

  4. C/C++中的位运算符

    --------开始-------- 我自己都记不住这是第几次把这几个位运算符搞混了,刚好在刚用过来把这几个位运算符记下来,俗话说的好好记性不如个烂笔头. 运算符: 与           或    ...

  5. Grafana+Zabbix+Prometheus 监控系统

    环境说明 软件 版本 操作系统 IP地址 Grafana 5.4.3-1 Centos7.5 192.168.18.231 Prometheus 2.6.1 Centos7.5 192.168.18. ...

  6. 【原创分析帖】据说Google内部有史以来最难的一道面试题

    逛技术平台的时候,刷到一道算法题,一眼看去,就被其开头吸引了: 摘自知乎某 Google 分布式大神的一道题,技术是Google内部出的有史以来最难的一道题 嗯,距离下班还有一段时间,就看看把. 题目 ...

  7. python 11:range(起始索引,终止索引,步数)(默认情况下步数为1,生成从起始索引,每次增加(终止索引-起始索引)/步数,到终止索引前的数字串)

    squares = [] for value in range(1,11): #第三参数默认为1,生成从1开始,每次增加1步数,到11前的10为止的数字串 square = value ** 2 sq ...

  8. 好用的Cache辅助工具类

    话不多说,直接上代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...

  9. 生成jsp验证码的代码详解(servlet版)

    package util; import java.util.*; import java.io.*; import java.awt.*; import java.awt.image.*; impo ...

  10. PHP获取远程和本地文件信息(汇总)

    1.PHP filesize() 函数filesize() 函数返回指定文件的大小.若成功,则返回文件大小的字节数.若失败,则返回 false 并生成一条 E_WARNING 级的错误. 但是只能获取 ...