- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
J2EE企业级软件开发之 Hibernate入门概要1
Java EE企业级软件开发 Hibernate入门 2014 洛阳师范学院 吕延庆 本节内容提要 ORM和Hibernate简介 数据库、SQL回顾与Mysql的使用 MyEclipse对Hibernate开发的支持 Hibernate的配置(Hibernate.cfg.xml) Hibernate映射文件(*.hbm.xml) ORM简介 对象/关系映射ORM(Object-Relation Mapping) 用于将对象与对象之间的关系对应到数据库表与表之间的关系的一种模式。简单地说,ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据库中。 对象和关系数据是业务实现的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。 内存中的对象之间存在着关联和继承关系。 而在数据库中,关系数据无法直接表达多对多关联和继承关系。 什么是关系模型(Relational Model)? 关系模型把世界看作是由实体(Entity)和联系(Relationship)构成的。 所谓实体就是指现实世界中具有区分与其它事物的特征或属性并与其它实体有联系的对象。 在关系模型中实体通常是以表的形式来表现的。 表的每一行描述实体的一个实例,表的每一列描述实体的一个特征或属性。 所谓联系就是指实体之间的关系,即实体之间的对应关系。 1:1 1:n m:n 关系数据库 :表 、字段 、主键、外键 什么是面向对象(Object Oriented)? 面向对象三大特征:封装、继承(一般与特殊)、多态(覆盖与重载) 类、对象、属性 关系 一般与特殊关系(is a):继承(extends)、实现(implement) 组成(has a):成员属性与成员方法 关联及其多重性 1:1 1:n m:n 双向关联与单向关联 ORM系统的一般构成 ORM系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。 一般的ORM包括四个部分: 对持久类对象进行CRUD操作的API 用来规定类和类属性相关查询的语言或API 规定mapping metadata的工具 可以让ORM实现同事务对象一起进行dirty checking、lazy association fetching和其他优化操作的技术。 Hibernate概述 Hibernate体系结构 Hibernate是一个开源ORM框架,一般作为模型层/数据访问层。它通过配置文件(hibernate.cfg.xml或perties)和映射文件(*.hbm.xml)把Java对象或持久化对象(Persistent Object,PO)映射到数据库中的数据表,然后通过操作PO,对数据库中的表进行各种操作,其中PO就是POJO(普通Java对象)加映射文件。Hibernate的体系结构如图所示。 图 Hibernate体系结构 Mysql简介 Mysql是一个开源数据库服务器,应用十分广泛。 数据库核心服务 图形管理界面(不是必须):MySQLFront或Eclipse自带的DB Browser JDBC驱动程序 准备工作:MySQL中建表 create database mytest; use mytest; create table book( id INT not null auto_increment, name VARCHAR(32) not null unique, author VARCHAR(64), price DOUBLE not null, createtime TIMESTAMP primary key (id) ); 上述步骤也可在MyEclipse环境中以图形界面完成 JDBC实现查询 // JDBC实现 Class.forName(com.mysql.jdbc.Driver); // driver class Connection conn = DriverManager.getConnection(jdbc:mysql://localhost:3306/mytest,root,lysfxy); // JDBC url, username, password String sql =select * from book; PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); if (rs!=null){ rs.last(); System.out.println(rs
文档评论(0)