ORM进阶: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框架搭建及开发的更多相关文章
- SSH(Struts2+Spring+Hibernate)框架搭建流程<注解的方式创建Bean>
此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblo ...
- javaWeb项目(SSH框架+AJAX+百度地图API+Oracle数据库+MyEclipse+Tomcat)之二 基础Hibernate框架搭建篇
我们在搭建完Struts框架之后,从前台想后端传送数据就显得非常简单了.Struts的功能不仅仅是一个拦截器,这只是它的核心功能,此外我们也可以自定义拦截器,和通过注解的方式来更加的简化代码. 接下来 ...
- 基于Maven的S2SH(Struts2+Spring+Hibernate)框架搭建
1. 前言 基于Maven的开发方式开发项目已经成为主流.Maven能很好的对项目的层次及依赖关系进行管理.方便的解决大型项目中复杂的依赖关系.S2SH(Struts2+Spring+Hibernat ...
- Hibernate框架搭建实例
一,Hibernate是一个持久层,是一个专门负责管理数据库连接的框架: 二,Hibernate的搭建实例: 1.在Hibernate的官方网站(http://www.hibernate.org)可以 ...
- hibernate框架搭建
hibernate框架的搭建步骤: 1.导包 2.创建数据库准备表 3.书写orm元数据(对象与表的映射配置文件) 4.书写配置文件 5.书写代码测试 一.导包: 创建web-maven工程添加hib ...
- 在Eclipse中使用Struts和Hibernate框架搭建Maven Web项目
前言 学习使用Java还是2012年的事情,刚开始学习的Java的时候,使用的是MyEclipse工具和SSH框架.初学者适合使用MyEclipse,因为他将struts.Spring和Hiberna ...
- SSH(Struts2+Spring+Hibernate)框架搭建流程
添加支持 我先介绍的是MyEclipse9的自带框架支持搭建过程:(完全的步骤 傻瓜式的学习..~) 首先我们来搭建一个Web项目: 一.Hibernate(数据层)的搭建: 相关描述 Ⅰ.服务器与数 ...
- spring+struts2+hibernate框架搭建(Maven工程)
搭建Spring 1.porm.xml中添加jar包 <!-- spring3 --> <dependency> <groupId>org.springframew ...
- hibernate 框架搭建
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自 ...
随机推荐
- PCB拼板之单一矩形排样算法
算法实现相关内容整理如下: 一.排样变量与关系 此算法,基于固定4边的尺寸遍历每个单只板的长宽得到最优解. 二.条件约束 基本约束条件(参考上图变量) 三.排样图形相同类型规律 由于计算量大,为了有效 ...
- [BZOJ1041]圆上的整点
嗯... 自己看视频讲解? >Click Here< #include<cstdio> #include<queue> #include<iostream&g ...
- C#Cookie操作类,删除Cookie,给Cookie赋值
using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security ...
- WebApi里面路由机制的原理以及路由匹配的过程
1.WebApi服务启动之后,会执行全局配置文件Global.asax.cs的 protected void Application_Start(){GlobalConfiguration.Confi ...
- Spring Boot (5) Spring Boot配置详解
application.properties application.properties是spring boot默认的配置文件,spring boot默认会在以下两个路径搜索并加载这个文件 src\ ...
- 团队作业-Beta版本发布
这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 Three cobblers 这个作业的目标 Beta版本发布报 ...
- js 字符串 处理方法
charAt() 返回指定索引位置的字符 charCodeAt() 返回指定索引位置字符的 Unicode 值 concat() 连接两个或多个字符串,返回连接后的字符串 fromCharCode() ...
- sql server 存储过程(事务,带参数声明,数据库瘦身)
CREATE PROCEDURE procedureName (@var1 as varchar(50),@var2 as varchar(50)) --建立未发临时表 AS begin tran - ...
- 安装rails卡住很慢 出现302 Moved Temporarily
在MAC上安装rails的时候,使用命令$ gem install rails 发现一直没响应,使用$ gem install rails-V命令发现,安装会在中间卡住,出现302 Moved Tem ...
- 安卓JNI使用C++类
安卓JNI使用C++类,同时可使用C++的类成员变量,这就必须保证程序持续保存Native状态,即长期维护C++对象的地址.完成初始化之后,需要使用对象成员的java层函数需要传入对象的地址. 一.N ...