使用Hibernate开发租房系统+(笔记)
Hibernate学习笔记

Hibernate项目的构建与配置1.在项目里倒入Hibernate所必须的Jar包(1)Hibernate框架可以使用在任何的Java项目里,并不一定是Web项目。
只需要在项目里倒入Hibernate所必须要使用的jar包就可以了。
(2)在Hibernate的官网下载hibernate-release-4.2.2.Final.zip解压,要使用Hibernate必须导入的jar包就在目录“hibernate-release-4.2.2.Final\lib\required”下。
倒入此路径下的所有jar包就可以了。
2.配置hibernate.cfg.xml文件(1)配置hibernate.cfg.xml文件可以参考“\project\etc”目录下的hibernate.cfg.xml文件与hibernate.properties文件。
(2)使用Hibernate连接MySQL的hibernate.cfg.xml配置文件如下:<hibernate-configuration><session-factory>(设置显示Hibernate产生的SQL语句)<property name="show_sql">true</property>(设置MySQL的SQL语法的方言)<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>(设置MySQL的驱动程序)<property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>(设置MySQL的数据库路径、用户名、密码)<property name="hibernate.connection.url">jdbc:mysql:///java</property><property name="ername">root</property><property name="hibernate.connection.password">lizhiwei</property>(设置当数据库要保存的表不存在时,就新建表)<property name="hibernate.hbm2ddl.auto">update</property>(设置对象与数据库表的关系映射文件)<mapping resource="vo/User.hbm.xml"/></session-factory></hibernate-configuration>(3)此配置文件一般放在项目的src目录下。
hibernatemybatis内部测试笔试题

ACCP7.0内部测试学期: Y2 模块:Java考试时间: 50分钟总分数:100分注意:1、请勿在试卷上留下笔迹2、交卷时试题和答案均要上交《使用Hibernate开发租房系统》内部测试笔试题一、选择题(共25题,每题2.5分,选择一项或多项,漏选错选不得分)1.在Hibernate中,以下关于主键生成器说法错误的是()。
A.increment可以用于类型为long、short或byte的主键B.identity用于如SQL Server、DB2、MySQL等支持标识列的数据库C.sequence用于如Oracle、SQL Server等支持序列的数据库D.native由Hibernate根据底层数据库自行判断采用何种主键生成策略,是由使用的数据库生成主键的值2.在Hibernate中,关于脏检查和刷新缓存说法正确的是()。
A.当事务提交时,会发生脏检查B.Session的flush( )方法是刷新缓存的方法C.在执行Session的commit( )方法之前不会调用Session的flush( )方法D.编写代码时,调用commit( )方法之前要调用flush( )方法3.使用HQL查询所有部门信息,以下正确的是()。
A.from DeptB.select * from cn.jbit.demo.entity.DeptC.select Dept from cn.jbit.demo.entity.Dept dD.select d from Dept d4.关于Query接口的list( )和iterate( )方法,说法正确的是()。
A.执行list( )方法,查询所有符合条件的记录B.执行iterate( )方法,查询所有符合条件的记录C.执行list( )方法,查询出所有符合条件的主键值D.执行iterate ( )方法,查询出所有符合条件的主键值5.在HQL中,关于Query接口绑定参数的方法,说法正确的是()。
基于java的住房租赁管理系统实训报告

基于java的住房租赁管理系统实训报告一、项目背景随着社会发展和人口增加,住房租赁行业变得越来越重要。
为了更好地管理和监控住房租赁业务,需要开发一个基于Java 的住房租赁管理系统。
该系统可以帮助房东和租户更方便地进行房屋租赁和管理。
二、系统需求1. 用户管理:系统需要实现房东和租户的注册、登录、信息修改等功能。
2. 房屋管理:房东可以发布房屋出租信息,包括房屋地址、面积、租金等。
系统需要提供搜索功能,使租户可以根据自己的需求找到合适的房屋。
3. 合同管理:系统需要实现合同的生成、查看和修改功能。
合同中需要包含房屋租赁的具体信息。
4. 支付管理:系统需要支持在线支付功能,租户可以通过系统进行租金的支付。
5. 统计报表:系统需要生成租金收入、房屋数量和租户数量等统计报表,以帮助房东和租户进行业务分析和决策。
三、系统架构系统采用三层架构,分为表现层、业务逻辑层和数据访问层。
1. 表现层:使用Java Web技术实现用户界面,包括页面访问和控制。
2. 业务逻辑层:处理用户请求,实现各种业务逻辑,如用户注册、房屋发布、合同管理等。
3. 数据访问层:负责与数据库进行交互,实现用户信息、房屋信息、合同信息等的读写操作。
四、开发工具和环境1. 开发工具:Eclipse、IntelliJ IDEA等集成开发环境。
2. 开发语言:Java。
3. 数据库:MySQL。
4. Web框架:Spring MVC。
5. 前端技术:HTML、CSS、JavaScript。
五、开发过程1. 系统分析与设计:根据需求,进行系统分析和设计,包括绘制系统用例图、类图、数据库设计等。
2. 环境搭建:安装开发工具和数据库,配置开发环境。
3. 模块开发:根据系统设计,逐个实现系统的各个模块,包括用户管理、房屋管理、合同管理等。
4. 单元测试:对每个模块进行单元测试,确保功能的正确性。
5. 集成测试:将各个模块进行集成测试,确保系统的整体功能正常。
Hibernate课堂笔记

使用hibernate步骤
1.创建表
2.创建web项目导入hibernate支持jar 数据库驱动包jstl支持jar
包
3.编写实体类(即hibernate即将操作的对象)
4.和实体类在同一目录下编写映射文件xxx.hbm.xml
5.在src根目录下添加hibernate 配置文件hibernate.cfg.xml 含数据
库连接信息urldriver_class username password dialectshow_sqlformat_sql最重要的是<mapping>指定要加载的映射文件。
6.在测试类读取配置文件获取session 通过session操作实体类对象
实现CRUD操作[注没有SQL语句操作的是实体类对象或实体类属性]
Hibernate 核心API Configuration SessionFactory Session Transaction Query Criteria?
进阶思考下?如何简化代码?将重复使用的方法提取出来。
使用mysql数据库创建数据库名myhouse
练习1已知数据库表结构如下图所示,使用hibernate实现添加纪录修改记录删除记录以及查询单条记录功能。
练习2在上题基础上在util包下添加工具类HibernateUtil添加获取Session方法和SessionFactory发发
添加com.chinasofti.dao定义接口并在此接口下定义CRUD方法
添加com.chinasofti.dao.impl实现接口类并实现对应方法
新建测试类调用CRUD四个方法
有如下表结构
先创建表再依次创建相对应的实体类。
hibernate4学习笔记

hibernate4学习笔记Hibernate4学习笔记本⼈全部以⾃学为主,在⽹上收集各种学习资料,总结归纳学习经验,现将学习路径给予⼤家分享。
此次学习的hibernate的版本是:hibernate-release-4.2.4.Final(截⽌2015年7⽉31⽇最新版),JAVA的版本是:java8.0,使⽤的开发⼯具是:Eclipse Mars Release (4.5.0)。
第⼀天:Hibernate4基础知识和HelloWorld简单编程Hibernate是⼀种半成品ORM框架,对数据库持久化操作,程序员对数据库的操作转换成对对象的操作。
ORM 采⽤元数据来描述对象-关系映射细节, 元数据通常采⽤XML 格式, 并且存放在专门的对象-关系映射⽂件中。
HelloWorld简单编程1、准备Hibernate环境(1)导⼊Hibernate的Jar包,如下:(2)导⼊Mysql驱动包,我⽤的数据库是:Mysql 5.0,数据库驱动包如下:以上所有Jar加完毕之后,需要加⼊到Eclipse⾃⾝系统⾥⾯,具体如下:以上操作完毕之后,Hibernate的环境就算搭建完毕,下⾯就可以进⼀步操作。
2、配置hibernate.cfg.xml⽂件,主要是对数据库的连接,具体如下:"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/doc/63fa364d5022aaea998f0fde.html /hibernate-configuration-3.0.dtd ">rootmysqlname="connection.driver_class">com.mysql.jdbc.Driver jdbc:mysql:///Test(或者:jdbc:mysql://localhost:3306/Test)name="dialect">org.hibernate.dialect.MySQLInnoDBDialecttruetrueupdate3、编写⼀个实例类News.java,具体代码如下:package com.hibernate.helloworld;import java.sql.Date;public class News {private Integer id;private String title;private Date date;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public News(String title, String author, Date date) { super();this.title = title;this.author = author;this.date = date;}public News(){}@Overridereturn"News [id="+ id+ ", title="+ title+ ", author="+ author + ", date=" + date + "]";}}4、创建News.hbm.xml配置映射⽂件,具体代码如下:"/doc/63fa364d5022aaea998f0fde.html /hibernate-mapping-3.0.dtd">5、将映射⽂件News.hbm.xml指定到hibernate.cfg.xml配置⽂件⾥⾯,即在hibernate.cfg.xml⽂件⾥加⼊⼀⾏映射代码,具体如下:6、创建hibernate API操作测试类(Juit测试),验证hibernate的优势效果,具体代码如下:package com.hibernate.helloworld;import java.sql.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.Test;public class HibernateTest {@Testpublic void test() {//1. 创建⼀个 SessionFactory 对象SessionFactory sessionFactory=null;//1). 创建 Configuration 对象: 对应 hibernate 的基本配置信息和对象关系映射信息Configuration configuration=new Configuration().configure();//4.0 之前这样创建//sessionFactory=configuration.buildSessionFactory();//2). 4.0以后创建⼀个 ServiceRegistry 对象: hibernate 4.x 新添加的对象//hibernate 的任何配置和服务都需要在该对象中注册后才能有效.ServiceRegistry serviceRegistry=newServiceRegistryBuilder().applySettings(configuration.getProperties() ).buildServiceRegistry();sessionFactory=configuration.buildSessionFactory(serviceRegistry) ;//2. 创建⼀个 Session 对象Session session=sessionFactory.openSession();//3. 开启事务Transaction transaction=session.beginTransaction();//4. 执⾏保存操作News news = new News("Java12345", "ATGUIGU", new Date(new java.util.Date().getTime()));session.save(news);//5. 提交事务/doc/63fa364d5022aaea998f0fde.html mit();//6. 关闭 Sessionsession.close();//7. 关闭 SessionFactory 对象sessionFactory.close();}}7、测试结果如下:(1)数据库⾥⾯的结果如下:(2)Eclipse下的语句⽣成如下:以上就是简单Hibernate的测试,总结:1、不需要在数据库⾥⾯创建任何数据,由hibernate ⾃动⽣成;2、代码简单易理解,不复杂,测试数据只需要先创建以下⼏个步骤:SessionFactory-→Session-→Transaction-→session操作数据库-→提交-→关闭;3、不需要写SQL 语句,从头到尾没有写⼀条SQL语句,反⽽Hibernate帮我们⽣成SQL语句。
hibernate4学习笔记

Hibernate4学习笔记本人全部以自学为主,在网上收集各种学习资料,总结归纳学习经验,现将学习路径给予大家分享。
此次学习的hibernate的版本是:hibernate-release-4.2.4.Final(截止2015年7月31日最新版),JAVA的版本是:java8.0,使用的开发工具是:Eclipse Mars Release (4.5.0)。
第一天:Hibernate4基础知识和HelloWorld简单编程Hibernate是一种半成品ORM框架,对数据库持久化操作,程序员对数据库的操作转换成对对象的操作。
ORM 采用元数据来描述对象-关系映射细节, 元数据通常采用XML 格式, 并且存放在专门的对象-关系映射文件中。
HelloWorld简单编程1、准备Hibernate环境(1)导入Hibernate的Jar包,如下:(2)导入Mysql驱动包,我用的数据库是:Mysql 5.0,数据库驱动包如下:以上所有Jar加完毕之后,需要加入到Eclipse自身系统里面,具体如下:以上操作完毕之后,Hibernate的环境就算搭建完毕,下面就可以进一步操作。
2、配置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><!-- 配置连接数据库的基本信息 --><property name="ername">root</property><property name="connection.password">mysql</property><propertyname="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql:///Test(或者:jdbc:mysql://localhost:3306/Test)</property><!-- 配置 hibernate 的基本信息 --><!-- hibernate 所使用的数据库方言 --><propertyname="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> <!-- 执行操作时是否在控制台打印 SQL --><property name="show_sql">true</property><!-- 是否对 SQL 进行格式化 --><property name="format_sql">true</property><!-- 指定自动生成数据表的策略 --><property name="hbm2ddl.auto">update</property></session-factory></hibernate-configuration>3、编写一个实例类News.java,具体代码如下:package com.hibernate.helloworld;import java.sql.Date;public class News {private Integer id;private String title;private String author;private Date date;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public News(String title, String author, Date date) {super();this.title = title;this.author = author;this.date = date;}public News(){}@Overridepublic String toString() {return"News [id="+ id+ ", title="+ title+ ", author="+ author + ", date=" + date + "]";}}4、创建News.hbm.xml配置映射文件,具体代码如下:<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><!-- Generated 2015-7-31 17:08:25 by Hibernate Tools 3.4.0.CR1 --><hibernate-mapping><class name="com.hibernate.helloworld.News"table="NEWS"> <id name="id"type="ng.Integer"><column name="ID"/><!-- 指定主键的生成方式,系统默认的是:assigned, 改成native: 使用数据库本地方式 --><generator class="native" /></id><property name="title"type="ng.String"><column name="TITLE"/></property><property name="author"type="ng.String"><column name="AUTHOR"/></property><property name="date"type="java.sql.Date"><column name="DATE"/></property></class></hibernate-mapping>5、将映射文件News.hbm.xml指定到hibernate.cfg.xml配置文件里面,即在hibernate.cfg.xml文件里加入一行映射代码,具体如下:6、创建hibernate API操作测试类(Juit测试),验证hibernate的优势效果,具体代码如下:package com.hibernate.helloworld;import java.sql.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.Test;public class HibernateTest {@Testpublic void test() {//1. 创建一个 SessionFactory 对象SessionFactory sessionFactory=null;//1). 创建 Configuration 对象: 对应 hibernate 的基本配置信息和对象关系映射信息Configuration configuration=new Configuration().configure();//4.0 之前这样创建//sessionFactory=configuration.buildSessionFactory();//2). 4.0以后创建一个 ServiceRegistry 对象: hibernate 4.x 新添加的对象//hibernate 的任何配置和服务都需要在该对象中注册后才能有效.ServiceRegistry serviceRegistry=newServiceRegistryBuilder().applySettings(configuration.getProperties() ).buildServiceRegistry();sessionFactory=configuration.buildSessionFactory(serviceRegistry) ;//2. 创建一个 Session 对象Session session=sessionFactory.openSession();//3. 开启事务Transaction transaction=session.beginTransaction();//4. 执行保存操作News news = new News("Java12345", "ATGUIGU", new Date(new java.util.Date().getTime()));session.save(news);//5. 提交事务mit();//6. 关闭 Sessionsession.close();//7. 关闭 SessionFactory 对象sessionFactory.close();}}7、测试结果如下:(1)数据库里面的结果如下:(2)Eclipse下的语句生成如下:以上就是简单Hibernate的测试,总结:1、不需要在数据库里面创建任何数据,由hibernate 自动生成;2、代码简单易理解,不复杂,测试数据只需要先创建以下几个步骤:SessionFactory-→Session-→Transaction-→session操作数据库-→提交-→关闭;3、不需要写SQL 语句,从头到尾没有写一条SQL语句,反而Hibernate帮我们生成SQL语句。
Java相关课程系列笔记之十四Hibernate学习笔记(建议用WPS打开)

Hibernate学习笔记Java相关课程系列笔记之十四笔记内容说明Hibernate(梁建全老师主讲,占笔记内容100%);目录一、 Hibernate的概述 (1)Hibernate框架的作用 (1)Hibernate访问数据库的优点 (1)JDBC访问数据库的缺点 (1)Hibernate的设计思想 (1)二、 Hibernate的基本使用 (2)Hibernate的主要结构 (2)Hibernate主要的API (2)Hibernate使用步骤 (2)HQL语句(简要介绍) (6)三、数据映射类型 (7)映射类型的作用 (7)type映射类型的两种写法 (7)四、 Hibernate主键生成方式 (8)五种生成方式 (8)五、 Hibernate基本特性 (9)对象持久性 (9)处于持久状态的对象具有的特点 (9)三种状态下的对象的转换 (9)批量操作:注意及时清除缓存 (9)案例:三种状态下的对象使用 (10)一级缓存机制(默认开启) (10)一级缓存的好处 (10)管理一级缓存的方法 (10)延迟加载机制 (11)具有延迟加载机制的操作 (11)常犯的错误 (12)延迟加载的原理 (12)Session的get和load方法的区别 (12)延迟加载的好处 (12)案例:测试延迟加载 (12)案例:重构NetCTOSS资费管理模块 (13)Java Web程序中如何用延迟加载操作(OpenSessionInView) (15)六、关联映射 (18)一对多关系one-to-many (18)多对一关系many-to-one (19)多对多关联映射many-to-many (19)关联操作(查询join fetch/级联cascade) (21)继承关系映射 (24)七、 Hibernate查询方法 (27)HQL查询 (27)HQL和SQL的相同点 (27)HQL和SQL的不同点 (27)HQL典型案例 (27)Criteria查询 (30)Native SQL原生SQL查询 (31)八、 Hibernate高级特性 (32)二级缓存 (32)二级缓存开启方法及测试 (32)二级缓存管理方法 (33)二级缓存的使用环境 (33)查询缓存 (33)查询缓存开启方法及测试 (33)查询缓存的使用环境 (33)九、 Hibernate锁机制 (34)悲观锁 (34)悲观锁的实现原理 (34)悲观锁使用步骤及测试 (34)乐观锁 (35)乐观锁的实现原理 (35)乐观锁使用步骤及测试 (35)十、其他注意事项 (36)源码服务器管理工具 (36)利用MyEclipse根据数据表自动生成实体类、 (36)根据实体类和生成数据表 (37)Hibernate中分页查询使用join fatch的缺点 (37)Hibernate的子查询映射 (38)一、Hibernate的概述Hibernate框架的作用Hibernate框架是一个数据访问框架(也叫持久层框架,可将实体对象变成持久对象,详见第5章)。
hibernate笔记

步步为营Hibernate全攻略(一)构建Hibernate框架环境任何一项新技术的出现都有它的必然性,Hibernate也不例外,所以在掌握Hibernate的具体应用之前我们一定先要了解Hibernate是什么?使用Hibernate会给我们的程序开发带来哪些好处?使用Hibernate的好处简单来讲体现在以下几个方面:1. Hibernate说白了就是对持久层进行的封装,它简化了对数据库的操作,使得我们可以以对象方式直接访问数据库中的数据。
实现了完全的OO思想。
2. 另外由于Hibernate对JDBC的彻底封装,使得我们可以不用在程序中写传统的sql语句便能实现对数据库的各种操作,极大的提高了生产力。
3. Hibernate支持MySQL,SQL Server等多种数据库。
Hibernate提供了多种数据库的接口,只要更改配置信息可以实现对不同数据库的操作,换句话说也就是你可以轻视的实现数据库更换。
说了这么多Hibernate的好处,那Hibernate到底该怎样用呢?别急下面我们就来看看Hibernate环境是如何搭建起来的。
1. 建立Java项目(也可以是java web项目)。
2. 导入相关jar包。
导入jar包的方式可以有两种。
第一种是直接添加外部jar包,也就是我们的“Add External JARs”。
另外一种是先建立自己的jar包库,然后向新建的库中加入jar包,如果使用这种方式最后一定不要忘记将建好的库引入到项目中。
两种方式均可,但一般更推荐第二种方式。
加入的jar包主要有以下这些:2.1在Hibernate_Home/lib/路径下的所有jar包。
2.2加入Hibernate核心jar包:hibernate3.jar。
2.3加入所使用的数据库的JDBC驱动包。
使用MySQL数据库则加入MySQL数据库驱动mysql-connector-java-3.1.13-bin.jar。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章Hibernate入门本章技能目标理解持久化的概念理解ORM的概念了解Hibernate的基本原理学会编写实体映射文件学会使用hibernate完成数据增删改操作学会在项目中使用Hibernate本章单词Hibernate:对象关系映射框架。
Object:对象。
Relational:关系模型。
Mapping:映射。
Get:得到。
Load:加载。
Transient:瞬时。
Persistent:持久化。
Detached:分离本章简介对象——关系映射。
框架:hibernateHibernate 的优势是一个优秀的Java持久化层解决方案,主流的对象——关系映射工具。
简化了JDBC繁琐的编码。
Hibernate将数据库的连接信息都存放在配置文件中。
持久化与ORMORM(Object Relational Mapping ,对象关系映射).当程序退出后,这些数据就不复存在,所以,我们称这些数据的状态为瞬时的(Transient)有些数据,在程序退出后,还以文件等形式保存在存储设备中,我们称这些数据的状态是持久的(Persistent)在编写程序的时候,以面向对象的方式处理数据,保存数据的时候,却以关系型数据库的方式存储,所以,客观上我们需要一宗能在两者间进行转换的机制,这样的机制就是ORM(对象关系映射)准备Hibernate1.下载需要的jar包2.部署jar包3.创建Hibernate配置文件4.创建实体类和实体映射文件Hibernate.cfg.xml配置内容:Dialect:参数:用于配置Hibernate使用的不同数据库类型。
Connection.dirver_class参数:表示数据库驱动。
ername参数:表示数据库用户名。
Connection.password参数:表示数据库用户秘密。
Connection.url参数:表示数据库URL。
Current_session_context_class参数:指定当前Session范围和上下文。
Show_sql参数:参数为true,则程序运行时在控制台输出SQL语句。
配置好Hibernate的配置文件,就要实现数据库表和实体对象之间的映射,映射信息在映射文件中。
<mapping resource="cn/jbit/houserent/entity/User.hbm.xml" />一个实体类到数据库表??(表名)映射的配置,???.hbm.xml其中各元素的含义如下:Class元素:定义一个实体类的映射信息常用属性如下:Name表示对象实体类的全限定名。
Table表示对应的数据库表名。
Id元素:定义该属性到数据库表主键字段的映射。
常用属性如下:Name表示实体类属性的名字。
Type表示实体类属性的类型。
Column表示数据库表字段的名字,也可在子元素column 指定。
Generator元素:id元素的子元素用于指定主键的生成策略。
常用属性及子元素如下:Class用来指定具体主键生成策略。
Param元素用来传递参数。
常用主键的生成策略如下:increment,identity,native。
Property元素:定义实体类中属性和数据库中表的字段的对应关系。
常用属性如下:Name表示实体类属性的名字。
Type表示实体类属性的类型。
Column表示数据库表字段的名字,也可在子元素columnColumn元素:用于指定其父元素代表的实体类属性所对应的数据库表中的字段。
常用属性如下:Name表示字段的名字。
Length表示字段长度。
Not-null设定是否可以为null,值为true表示不能为null。
使用Hibernate操作数据库1.读取并解析配置文件利用classpath中的默认配置文件构建Configuration实例Configuration conf=newConfiguration().configure();2.读取并解析映射信息,创建SessionFactory SessionFactory sf=conf.buildSessionFactory();3.打开Session。
Session session=sf.openSession();4.开始一个事务。
Transaction tx=session.begintransaction();5.数据库操作。
Session.save(user);6.提交事务。
mit(),7.关闭session。
Session.close();HibernateUtil类的编写Private static Configuration configuration;Private final static SessionFactory sessionFactory;Static{Try{Configuration=new Configuration();Configuration.configure();sessionFactory=configuration.buildSessionFactory();}catch(Exception e){e.p....}}Public static Configuration getConfiguration(){Return configuration;}Public static SessionFactory getSessionFactory(){Return sessionFactory;}Public static Session getSession(){Return getSessionFactory().getCurrentSession();}使用hibernate实现数据库的增删改操作。
Session.save(user);Session.delete(.....);使用hibernate实现对数据库的查询操作Object get(Class clazz,Serializable id);通过实体类class对象和ID加载数据Object load(Class clazz,Serializable id);通过实体类Class对象和ID加载数据。
提问:1.举例说明什么是持久化?2.以实例说明什么是,对象——关系映射?3.通过与JDBC类比的方式简述使用hibernate的几个步骤?第2章Hibernate关联映射本章技能目标1.掌握many-to-one关联2.掌握one-to-many关联3.掌握many-to-many关联本章单词District:地区;street:街道。
Lazy:延迟。
Fetch:取。
Cascade:级联。
Inverse:反转。
employee:雇员。
Project:项目。
本章简介怎样映射面向对象领域的关联关系和数据库关系模型中的外键关联。
这是本章的重点。
第三章HQL使用技术1.掌握HQL数据查询技术2.掌握HQL实体查询3.掌握HQL属性查询4.掌握HQL参数绑定5.使用HQL实现查询排序6.使用HQL实现查询分组7.使用HQL实现查询分页本章单词Query:查询。
Language:语言。
Dialect:方言。
Title:标题。
Floorage:建筑面积。
Group:组。
Order:排序。
Scrollable:滚动本章简介HQL(Hibernate Query Language ,Hibernate查询语言)HQL是一种面向对象的查询语言,其中没有表和字段的概念,只有类,对象和属性的概念。
如何使用HQL使用HQL需要四步。
得到Session 。
编写HQL语句。
创建Query对象。
执行查询,得到结果。
1.得到Session:Session session=sessionFactory.openSession();2.编写HQL语句:String hql="from Street";3.创建Query对象:Query query=session.createQuery(hql);4.执行查询,得到结果:List<Street> list=query.list();For(Street street:list){System.out.println(street.get....);}其中Street并非表名,而是实体类名。
也可以写成from cn.jbit.houserent.bean.Street。
其实List对象中实际保存的事Street对象。
在很多时候可能需要为类设置别名。
属性查询有时我们并不需要获取完整的实体对象。
也就是需要的数据只是实体对象的某个属性。
String hql="select user.password from User as user where ='admin'";Query query=session.createQuery(hql);List list=query.list();Iterator it=list,iterator();If(it.hasNext){System.out.println(it.next());我们也可以获得多个属性。
String hql="select user.telephone ,ername from User as user where ='admin'";Query query=session.createQuery(hql);List list=query.list();Iterator it=list.Iterator();If(it.hasNext){Object[] object=(Object[])it.next();......}可以通过在HQL中动态构造对象实例的方法。
Select new User(user.password,ername) from User as user;这样返回的List对象中将保存user 对象。
但必须在User类中增加一个以telephone和username属性为参数的构造方法。
参数绑定?占位符String hql="select user.password from User as user where =?";Query query=session.createQuery(hql);query.setStrint(0,"admin");命名参数String hql="select user.password from User as user where =:name";Query query=session.createQuery(hql);query.setStrint("name","admin");封装参数实现动态设置查询参数,那就是将参数封装为一个bean,然后通过Query对象的setProperties(object bean)实现参数的设定。