Hibernate正向工程和逆向工程

合集下载

Hibernate

Hibernate

3.Hibernate映射类型
在hbm.xml中指定的type属性值.Java属性值<--映射类型-->表字段值映射类型负责属性值和字段值之间相互转化。type可以指定两种格式:
1)Java类型 例如:ng.String
*2)Hibernate类型
字符串:string
i.清除DAO中关闭session的代码
j.测试Struts2+Hibernate程序
--根据数据表编写POJO
--定义POJO和表的映射文件 [POJO类名].hbm.xml (在hibernate.cfg.xml中采用<mapping>元素定义)
--采用Hibernate API操作
//1.按主键做条件查询
session.load(查询类型,主键值);
session.get(查询类型,主键值);
//2.添加,根据hbm.xml定义
//自动生成主键值
session.save(obj);
//3.更新,按id当条件将obj属性
//更新到数据库
session.update(obj);
//4.删除,按id当条件删除
session.delete(obj);
**4.主键生成方式
Hibernate框架提供了一些内置的主键值生成方法。使用时通过hbm.xml文件<id>元素的<generator>指定。
*1)sequence
采用指定序列生成主键值。适用Oracle数据库。
<generator class="sequence"><param name="sequence">序列名</param></generator>

Hibernate教程---看这一篇就够了

Hibernate教程---看这一篇就够了

Hibernate教程---看这⼀篇就够了1 Hibernate概述1.1什么是hibernate框架(重点)1 hibernate框架应⽤在javaee三层结构中 dao层框架2 在dao层⾥⾯做对数据库crud操作,使⽤hibernate实现crud操作,hibernate底层代码就是jdbc,hibernate对jdbc进⾏封装,使⽤hibernate好处,不需要写复杂jdbc代码了,不需要写sql语句实现3 hibernate开源的轻量级的框架4 hibernate版本Hibernate3.xHibernate4.xHibernate5.x(学习)1.2 什么是orm思想(重点)1 hibernate使⽤orm思想对数据库进⾏crud操作2 在web阶段学习 javabean,更正确的叫法实体类3 orm:object relational mapping,对象关系映射⽂字描述:(1)让实体类和数据库表进⾏⼀⼀对应关系让实体类⾸先和数据库表对应让实体类属性和表⾥⾯字段对应(2)不需要直接操作数据库表,⽽操作表对应实体类对象画图描述2 Hibernate⼊门2.1 搭建hibernate环境(重点)第⼀步导⼊hibernate的jar包因为使⽤hibernate时候,有⽇志信息输出,hibernate本⾝没有⽇志输出的jar包,导⼊其他⽇志的jar包不要忘记还有mysql驱动的jar包第⼆步创建实体类package cn.itcast.entity;public class User {/*hibernate要求实体类有⼀个属性唯⼀的*/// private int uid;private String uid;private String username;private String password;private String address;// public int getUid() {// return uid;// }// public void setUid(int uid) {// this.uid = uid;// }public String getUsername() {return username;}public String getUid() {return uid;}public void setUid(String uid) {this.uid = uid;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}(1)使⽤hibernate时候,不需要⾃⼰⼿动创建表,hibernate帮把表创建第三步配置实体类和数据库表⼀⼀对应关系(映射关系)使⽤配置⽂件实现映射关系(1)创建xml格式的配置⽂件- 映射配置⽂件名称和位置没有固定要求- 建议:在实体类所在包⾥⾯创建,实体类名称.hbm.xml(2)配置是是xml格式,在配置⽂件中⾸先引⼊xml约束- 学过约束dtd、schema,在hibernate⾥⾯引⼊的约束dtd约束(3)配置映射关系<hibernate-mapping><!-- 1 配置类和表对应class标签name属性:实体类全路径table属性:数据库表名称--><class name="er" table="t_user"><!-- 2 配置实体类id和表id对应hibernate要求实体类有⼀个属性唯⼀值hibernate要求表有字段作为唯⼀值--><!-- id标签name属性:实体类⾥⾯id属性名称column属性:⽣成的表字段名称--><id name="uid" column="uid"><!-- 设置数据库表id增长策略native:⽣成表id值就是主键⾃动增长--><generator class="native"></generator></id><!-- 配置其他属性和表字段对应name属性:实体类属性名称column属性:⽣成表字段名称--><property name="username" column="username"></property><property name="password" column="password"></property><property name="address" column="address"></property></class></hibernate-mapping>第四步创建hibernate的核⼼配置⽂件(1)核⼼配置⽂件格式xml,但是核⼼配置⽂件名称和位置固定的- 位置:必须src下⾯- 名称:必须hibernate.cfg.xml(2)引⼊dtd约束(3)hibernate操作过程中,只会加载核⼼配置⽂件,其他配置⽂件不会加载第⼀部分:配置数据库信息必须的第⼆部分:配置hibernate信息可选的第三部分:把映射⽂件放到核⼼配置⽂件中<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- 第⼀部分:配置数据库信息必须的 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property> <property name="ername">root</property><property name="hibernate.connection.password">root</property><!-- 第⼆部分:配置hibernate信息可选的--><!-- 输出底层sql语句 --><property name="hibernate.show_sql">true</property><!-- 输出底层sql语句格式 --><property name="hibernate.format_sql">true</property><!-- hibernate帮创建表,需要配置之后update: 如果已经有表,更新,如果没有,创建--><property name="hibernate.hbm2ddl.auto">update</property><!-- 配置数据库⽅⾔在mysql⾥⾯实现分页关键字 limit,只能使⽤mysql⾥⾯在oracle数据库,实现分页rownum让hibernate框架识别不同数据库的⾃⼰特有的语句--><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 第三部分:把映射⽂件放到核⼼配置⽂件中必须的--><mapping resource="cn/itcast/entity/User.hbm.xml"/></session-factory></hibernate-configuration>2.2 实现添加操作第⼀步加载hibernate核⼼配置⽂件第⼆步创建SessionFactory对象第三步使⽤SessionFactory创建session对象第四步开启事务第五步写具体逻辑 crud操作第六步提交事务第七步关闭资源@Testpublic void testAdd() {// 第⼀步加载hibernate核⼼配置⽂件// 到src下⾯找到名称是hibernate.cfg.xml//在hibernate⾥⾯封装对象Configuration cfg = new Configuration();cfg.configure();// 第⼆步创建SessionFactory对象//读取hibernate核⼼配置⽂件内容,创建sessionFactory//在过程中,根据映射关系,在配置数据库⾥⾯把表创建SessionFactory sessionFactory = cfg.buildSessionFactory(); // 第三步使⽤SessionFactory创建session对象// 类似于连接Session session = sessionFactory.openSession();// 第四步开启事务Transaction tx = session.beginTransaction();// 第五步写具体逻辑 crud操作//添加功能User user = new User();user.setUsername("⼩王");user.setPassword("250");user.setAddress("⽇本");//调⽤session的⽅法实现添加session.save(user);// 第六步提交事务mit();// 第七步关闭资源session.close();sessionFactory.close();}3 内容⽬录1 实体类编写规则2 hibernate主键⽣成策略(1)native(2)uuid3 实体类操作(1)crud操作(2)实体类对象状态4 hibernate的⼀级缓存5 hibernate的事务操作(1)事务代码规范写法6 hibernate其他的api(查询)(1)Query(2)Criteria(3)SQLQuery3.1 实体类编写规则1 实体类⾥⾯属性私有的2 私有属性使⽤公开的set和get⽅法操作3 要求实体类有属性作为唯⼀值(⼀般使⽤id值)4 实体类属性建议不使⽤基本数据类型,使⽤基本数据类型对应的包装类(1)⼋个基本数据类型对应的包装类- int – Integer- char—Character、- 其他的都是⾸字母⼤写⽐如 double – Double(2)⽐如表⽰学⽣的分数,假如 int score;- ⽐如学⽣得了0分,int score = 0;- 如果表⽰学⽣没有参加考试,int score = 0;不能准确表⽰学⽣是否参加考试l 解决:使⽤包装类可以了, Integer score = 0,表⽰学⽣得了0分,表⽰学⽣没有参加考试,Integer score = null;3.2 Hibernate主键⽣成策略1 hibernate要求实体类⾥⾯有⼀个属性作为唯⼀值,对应表主键,主键可以不同⽣成策略2 hibernate主键⽣成策略有很多的值3 在class属性⾥⾯有很多值(1)native:根据使⽤的数据库帮选择哪个值(2)uuid:之前web阶段写代码⽣成uuid值,hibernate帮我们⽣成uuid值3.3 实体类操作对实体类crud操作添加操作1 调⽤session⾥⾯的save⽅法实现根据id查询1 调⽤session⾥⾯的get⽅法实现修改操作1 ⾸先查询,修改值(1)根据id查询,返回对象删除操作1 调⽤session⾥⾯delete⽅法实现3.4 实体类对象状态(概念)1 实体类状态有三种(1)瞬时态:对象⾥⾯没有id值,对象与session没有关联(2)持久态:对象⾥⾯有id值,对象与session关联(3)托管态:对象有id值,对象与session没有关联2 演⽰操作实体类对象的⽅法(1)saveOrUpdate⽅法:实现添加、实现修改3.5 Hibernate的⼀级缓存什么是缓存1 数据存到数据库⾥⾯,数据库本⾝是⽂件系统,使⽤流⽅式操作⽂件效率不是很⾼。

Hibernate反向工程法

Hibernate反向工程法

MyEclipse下Hibernate应用程序开发(免费)Hibernate是一个非常优秀的持久层框架,使用Hibernate技术可以提高80%以上的工作效率,现在Hibernate 已经被国内大部分的IT企业所认可,并已经应用于自己的产品当中。

开次开发是使用Mysql数据库,数据库版本无所谓,喜欢用那个就用那个,现在用的是Mysql 5.0版本。

第一步,数据库建立:创建数据库create database hibernate进入创建的数据库use hibernate创建表程序代码CREATETABLE `t_user` (`Id` int(11) NOTNULL auto_increment,`name` varchar(20) notNULL ,`loginid` varchar(20) notNULL,`password` varchar(20) notNULL,`age` int(10) notNULL ,`birthday` DATE notNULL ,PRIMARYKEY (`Id`)) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COMMENT='会员表';第二步,创建一个Java工程,工程名取为HibernateTraining点击Next >,在新的对话框当中,创建一个新的Source Folder,取名为src,最后点击Finish第三步,配置数据库点击Window --> show view --> other,在弹出的对话框当中,选择MyEclipse Enterprise WorkBench分支下的DB Browser,如下图所示:最后,点击OK,在工作空间上将会出现一个DB Browser的配置页面,在配置页面空白处,右键,选择New 按钮在弹出的对话框当中配置数据库连接在配置页面上,选择数据库类型,输入数据库配置名称,输入数据库用户名密码,导入Mysql JDBC Driver 即可。

通过Hibernate将数据库在myeclipse中逆向生成

通过Hibernate将数据库在myeclipse中逆向生成

通过Hibernate将数据库在myeclipse中逆向生成1.首先准备好数据库。

2.在MyEclipse的右上角切换透视图,切换到MyEclipse Database Explorer3.在最左边点击右键,选择New(也就是新建一个数据库连接),然后编写第一个页面,Driver template: MySQL Connector/J (因为是建立数据库连接)Driver name :icloud(这个名字随便起,方便以后使用)Connection URL :jdbc:myslq://localhost:3306/icloud?useUnicode=true& characterEncoding=UTF-8(这里如果最后地数据库,写localhost;如果在别的机子上,填写对方的ip;这个地方的 icloud是数据库的名称;当然后面还可以加一些配置,例如加密方式是统一的,都是用UTF-8进行加密)User name :root (数据库访问的用户名,mysql默认用户为root。

)Password:¥¥¥¥¥(设置数据库的密码)Driver JARs :点击Add JARs ,然后将mysql-connector-java-5.1.6-bin.jar添加进去,也可以是其他版本。

Driver classname:com.mysql.jdbc.Driver最后点击Test Driver,如果返回Database connection successfully established.说明第一步成功。

4.点击Next,进入第二个界面,选择第三个单选按钮(Display the selected Schemas),然后点击右边的Add按钮,也就是说添加你的数据库,然后点击完成按钮,这样你的数据库连接就创建好了。

5.切换到MyEclipse Java Enterprise 的透视图,创建一个Web Project,名字、保存路径什么的自己填写,我起来个icloud。

企业培训-Hibernate培训课程 精品

企业培训-Hibernate培训课程 精品

session.save(student)
Hibernate工作流程:
1.根据类型找到映射文件 2.读取映射关系 3.根据映射关系生成insert语句 4.用student对象的属性值作为Sql参 数值
5.创建运行 PreparedStatement.executeUpdate方 法
编写第一个Hibernate程序
4. 此时处于Detached状态的user对象再次
user.setName(“Jonh_2”); mit();
借助session2由Hibernate纳入管理容器, 恢复Persistent状态。
5. 由于user对象再次处于Persistent状态, 因此其属性的改变将由Hibernate自动固化到 数据库中。
/>
(1) Name:指定了映射类中的属性名为” propertyName”,此属性将被映射到指定的库
表字段。
(2) column(可选):指定了库表中对应映射类属性的字段名。
(3) type(可选):指定了映射字段的数据类型
(4) update, insert (可选 - 默认为 true) :表明在用于UPDATE 和/或 INSERT的SQL语句
(4)
outer-join="true|false|auto"
(5)
property-ref="propertyNameFromAssociatedClass" (6)
access="field|property|ClassName"
(7)
/>
1. name: 属性的名字[POJO中的]。 2. class (可选 - 默认是通过反射得到的属性类型):被关联的类的名字。 3. cascade(级联) (可选) 表明操作是否从父对象级联到被关联的对象。 4. constrained(约束) (可选) 表明该类对应的表对应的数据库表,和被关联的 对象所对应的数据库表之间,通过一个外键引用对主键进行约束。这个选项 影响save()和delete()在级联执行时的先后顺序(也在schema export tool中被使 用)。

三大框架之hibernate学习大全

三大框架之hibernate学习大全

目录1三期课程核心---项目主导 (3)1.1 软件生命周期 (3)1.2 程序/软件设计 (3)1.3 MVC设计模式 (5)1.4 业务逻辑层的介绍 (6)1.5 Hibernate核心介绍 (7)1.5.1 ORM 对象关系映射 (7)1.6 ORM (8)1.7 Hibernate简介和核心接口 (9)1.7.1 版本 (9)1.7.2 核心 (9)1.8 MyEclips中配置Hibernae (10)1.8.1 数据库浏览器介绍(DB Brower) (10)1.8.2 为项目引入Hibernate框架 (13)1.8.3 Hibernate反向工程 (18)1.9 Hibernate 单表操作 (21)⏹新接班核心思路整理✓ORM 思想的理解✓Hibernate应用于持久层的理解✓Hibernate核心接口✓MyEclipse配置Hibernate✓Hibernate单表操作Hibernate第一章,在于对ORM思想的理解,这也是难点! Hibernate核心方法<class name="org.zzy.bean.TblUser"table="TBL_USER" schema="ZZY"><id name="id"type="java.math.BigDecimal"><column name="ID"precision="22"scale="0"/><generator class="sequence"/></id><property name="uname"type="ng.String"> <column name="UNAME"length="50"/></property><property name="pwd"type="ng.String"><column name="PWD"length="50"/></property></class></session-factory><mapping resource="org/zzy/bean/TblUser.hbm.xml"/> <mapping resource="org/zzy/bean/TblLxr.hbm.xml"/> </session-factory>员工:多方--》一方的属性private Dept dept;<many-to-one name="dept" column="DEPTNO"class="cn.jbit.hibernatedemo.entity.Dept" />部门:一方配置多方的集合:private Set<Emp> emps = new HashSet<Emp>();<set name="emps"><key column="DEPTNO"></key><one-to-many class="cn.jbit.hibernatedemo.entity.Emp"/> </set>Cascade:none/delete/all/save-update<set>元素的inverse属性:关联方向1三期 课程核心---项目主导必须保证每个框架做一个项目实例1.1 软件生命周期一个完整的项目或软件的生命周期有具体如下: 软件的生命周期: 1. 可行性分析 2. 需求分析 3. 概要设计 4. 详细设计 5. 数据库设计 6. 程序设计 7. 编码8. 模块测试 9. 集成测试 10. 实施和维护程序人员而言我们重点关注的是“程序设计“1.2 程序/软件 设计软件设计中的核心是面向对象! 在整个软件设计中我们编码人员尤为关注的是“OOD 面向对象的设计“ 。

韩顺平 hibernate笔记

◆hibernate是什么?1.hibernate 是一个框架(framework)2.hibernate 是一个orm框架[]●orm (object relation mapping) 对象关系映射框架o object -> 业务层(只对对象操作)r relation-> 关系数据库m mapping 对象关系映射文件3.hibernate 处于我们项目的持久层位置(正因为如此,所以有人又把hibernate称为持久层框架)4.hibernate 实际上就是对jdbc进行了轻量级的封装.5.hibernate 的基础还是我们java 反射机制●除了hiberante 这个orm框架,还有一些:apache ojb / toplink / ibatis / ejb cmpApache OJB ()Cayenne ()Jaxor ()Hibernate()iBatis ()jRelationalFramework ()mirage ()SMYLE ()TopLink ()把对象持久化: 把对象的信息保存到数据库或者是文件.总结: hibernate 是对jdbc进行轻量级封装的orm 框架,充当项目的持久层.◆为什么需要hibernate?◆快如入门案例:hiberante 可以用在j2se 项目,也可以用在j2ee (web项目中)struts是web框架,所以用在web项目我们使用手动配置hibernate方式开发一个hibernate 项目,完成crud操作。

开发流程1.创建一个项目2.画出一个简单项目框架示意图3.引入hibernate 开发包(从网上下载google hibernate ),完后我们4.开发hibernate 有三种方法(开发顺序)我们使用第二种开发项目创建employe 表.create table employee(id number primary key,name varchar2(64) not null,email varchar2(64) not null,hiredate date not null)创建一个序列,将来用于主键的自增长:--创建一个序列create sequence emp_seqstart with 1increment by 1minvalue 1nomaxvaluenocyclenocache5.开发domain对象和对象关系映射文件对象关系映射文件:作用是用于指定domain对象和表的映射关系. ,该文件的取名有规范: domain对象.hbm.xml,一般我们放在和domain对象同一个文件夹下(包下)我们的Employee.hbml.xml配置文件:<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.hsp.domain"><class name="Employee" table="employee"><!-- id元素用于指定主键属性--><id name="id" column="id" type="ng.Integer"><!-- 该元素用于指定主键值生成策略hilo native increment sequence uuid --><generator class="sequence"><param name="sequence">emp_seq</param></generator></id><!-- 对其它属性还有配置--><property name="name" type="ng.String"><column name="name" not-null="false" /></property><property name="email" type="ng.String" ><column name="email" not-null="false"/></property><property name="hiredate" type="java.util.Date"><column name="hiredate" not-null="false" /></property></class></hibernate-mapping>6.手动配置我们的hibernate.cfg.xml文件,该文件用于配置连接的数据库的类型,driver, ,用户名,密码,url ....同时管理对象关系映射文件,该文件的名称,我们一般不修改.hibernate.cfg.xml配置文件<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- hibernate 设计者,给我们提供了一写常用的配置--><!-- 配置使用的driver --><property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="ername">scott</property><property name="connection.password">tiger</property><property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orclhsp</property> <!-- 配置dialect方言,明确告诉hibernate连接是哪种数据库--><property name="dialect">org.hibernate.dialect.OracleDialect</property><!-- 显示出对于sql --><property name="show_sql">true</property><!-- 指定管理的对象映射文件--><mapping resource="com/hsp/domain/Employee.hbm.xml"/></session-factory></hibernate-configuration>7.测试文件TestMain.javapackage com.hsp.view;import com.hsp.util.*;import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.*;import com.hsp.domain.Employee;public class TestMain {/*** @param args*/public static void main(String[] args) {//查询[load]->hql语句(hibernate query language)}public static void delEmp() {//删除//获取一个sessionSession session=MySessionFactory.getSessionFactory().openSession();Transaction ts=session.beginTransaction();//删除1.先获取该雇员,然后删除Employee emp=(Employee) session.load(Employee.class, 3);session.delete(emp);mit();session.close();}public static void updateEmp() {// TODO Auto-generated method stub//修改用户//获取一个会话Session session=MySessionFactory.getSessionFactory().openSession();Transaction ts=session.beginTransaction();//修改用户1. 获取要修改的用户,2.修改//load是通过主键属性,获取该对象实例.<--->表的记录对应Employee emp=(Employee) session.load(Employee.class, 3);emp.setName("韩顺平8");//update...emp.setEmail("abc@");mit();session.close();}public static void addEmployee() {//我们使用hibernate完成crud操作[这里我们只见对象,不见表]//现在我们不是用service ,直接测试.//1。

第2章为开发做好准备


24
2.3 开发第一个Web Project
安徽理工大学计算机科学与工程学院
最简单Web项目只需要一个子目录WEB-INF。 WEB-INF是一个很重要的目录,把Web项目的配 置文件web.xml放在这个目录下。通常在其下创 建lib和classes,在lib中放置应用依赖的Java 库文件或者自己编写的JAR包。在classes中通 常放自己所编写的编译后的java class文件。 web.xml是一个Web项目的配置文件。
12
2.2.1 开发步骤
安徽理工大学计算机科学与工程学院
此时,MyEclipse生成了一个名为MyEclipse的工程, 如图2-9所示。
图2-9 MyProject工程
JRE System Library存放的是环境运行需要的 类库。
2013-7-14
School of Computer Science & Engineering
类所在包 输入类名
图2-11 New Java Class
2013-7-14
School of Computer Science & Engineering
16
2.2.1 开发步骤
安徽理工大学计算机科学与工程学院
选择“Finish‖,文件保存时,会自动编译。 MyClass.java代码如下: package com.apex.demo; public class MyClass { public static void main(String[] args) { System.out.println("Hello World"); } }
图2-13 Web项目的运行效果
2013-7-14

MyEclipse中hibernate反向工程实例(一对多关联)

MyEclipse中hibernate反向工程实例(一对多关联)1、数据库设计实例对象为工作人员和部门,关系为一个部门对应多个工作人员,一个工作人员只属于一个部门见表语句如下:(先用Navicat建的表,然后导出的sql语句),数据库名称为test SET FOREIGN_KEY_CHECKS=0;DROP TABLE IF EXISTS`t_department`;CREATE TABLE`t_department`(`id`int(11)NOT NULL auto_increment,`departmentname`varchar(40)NOT NULL,`departmentlocation`varchar(100)NOT NULL,PRIMARY KEY(`id`))ENGINE=InnoDB DEFAULT CHARSET=utf8;DROP TABLE IF EXISTS`t_user`;CREATE TABLE`t_user`(`id`int(11)NOT NULL auto_increment,`username`varchar(20)NOT NULL,`password`varchar(20)NOT NULL,`departmentid`int(11)NOT NULL,PRIMARY KEY(`id`),KEY`departmentid`(`departmentid`),CONSTRAINT`departmentid`FOREIGN KEY(`departmentid`)REFERENCES `t_department`(`id`))ENGINE=InnoDB DEFAULT CHARSET=utf8;2、使用MyEclipse反向工程生成配置文件和POJO类第一步:配置数据源1、打开MyEclipse,新建一个web工程,这里命名为hibernate_demo2、打开数据库设置器:依次单击【window】-->【Show View】-->【Other…】如下图所示:3、在弹出的窗口ShowView中选择DB Browser,如下图所示:4、在DB Browser窗口中,选择显示的图标,单击右键执行新建命令,如下图示5、弹出Database Driver对话框,在此会要求我们配置数据库的相关信息,具体设置如下图所示,设置完成,单击Finish.【第二步】引入hibernate配置文件1、添加hibernate包:选中我们的Web工程,依次单击鼠标右键-->MyEclipse-->Add Hibernate Capabilities…如下图所示:2、在弹出的窗口中做如下设置:【Next】,创建hibernate的配置文件【Next】,指明hibernate与数据库的连接【Next】,创建HibernateSessionFactory类,用来获得session。

Hibernate实验(一):数据源、Hibernate配置与反向工程映射

Hibernate实验(一):数据源、Hibernate配置与反向工程映射实验目的:1、熟练掌握Eclipse中数据源的配置。

2、熟练掌握Hibernate配置、理解配置文件内容。

3、熟悉掌握反向工程的概念,并能完成反向工程的相关ORMapping操作。

4、初步了解应用Hibernate架构技术完成数据库应用项目开发。

实验内容:参考下列步骤将示例项目:TeacherSysDemo再做一遍。

一.建立数据库如果该数据库已存在,此步骤可省略。

注意:也可以使用提供的salary.bak在SQLServer中进行“还原数据库”操作在SQLServer中建立数据库teacherinfo。

表结构与样例数据参考如下:二、新建项目新建一个Dynamic Web Project项目Hibernatepro1,并将示例项目如:TeacherSysDemo中WebContent目录中WEB-INFO中lib下所有的.jar文件拷贝到此新建项目对应的文件夹中。

三、数据源配置在Eclipse菜单项中选择Window->Show View->Data Source Explorer使之配置成如下效果:参考配置过程与参考选项值设置:点击其中Test Connection按钮,应得到Ping Success即为数据源配置成功。

记录其中的Connection URL。

用于后续Hibernate配置。

三、在Eclipse中进行Hibernate数据库连接配置与Hibernate.xml文件配置1.打开Hibernate Configurations面板Hibernate插件安装完毕后,Windows->Show View->Hibernate->Hibernate Configurations点击OK后,出现Hibernate Configurations面板:2.进行hibernate配置在该面板中点击右键菜单中“Add Configuration”菜单项:3.hibernate.cfg.xml文件的生成要先有hibernate.cfg.xml文件,才能为后续反向工程映射文件的生成提供条件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、正向工程
MyEclipse使用hibernate正向工程,hibernate的正向工程是指从java实体类生成数据库表的过程,这种过程符合java 程序员面向对象编程的思想,也是工程设计的时候使用比较多的一种思想。

具体实施过程如下。

①手动创建POJO类,并对POJO类加上Hibernate注解(hibernate annotation)。

这样做的目的是通过MyEclipse来生成hibernate映射文件,POJO类如下(省略set方法):
②配置MyEclipse xdoclet:
具体配置方法为,项目选中右击点properties如下图操作:
③选中当前项目名称右击MyEclipse点击Run XDoclet:
④生成的映射文件:
二,逆向工程
由数据库表生成java pojo和hibernate映射文件
①创建数据库数据表:
②配置数据库:
点击Window-->show view-->other,选择MyEclipse Enterprise WorkBench分支下的DB Browser,如下图所示:
在DB Browser窗口中右键单击空白处选择“New”...,弹出如下窗口进行数据库配置(和hibernate.cfg.xml)一样:
配置完成之后出现如下连接:
④创建项目,添加Hibernate支持(略)
⑤通过反向工程,生成POJO及hbm映射文件:
在DB Browser配置界面,找到test数据库,展开到表,如下图所示:
选中tb_user点击右键,选择Hibernate Reverse Engineering,如下图所示:
将弹出如下的对话框:
点击Next>按钮,在新的对话框当中,在ID Generator的选项当中选择increment,表示ID为数据库自增长:
点击Next>,可以修改类名或列名:
最后,点击Finish按钮,新的目录结构如下图所示:。

相关文档
最新文档