千家信息网

(01)Hibernate入门

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,1、Hibernate在SSH中的地位SSH序号技术作用1Struts基于mvc模式的应用层框架技术!2Spring创建对象、处理对象的依赖关系以及框架整合!3Hibernate基于持久层的框架(数据
千家信息网最后更新 2024年11月25日(01)Hibernate入门


1、Hibernate在SSH中的地位


SSH
序号技术作用
1Struts基于mvc模式的应用层框架技术!
2Spring创建对象、处理对象的依赖关系以及框架整合!
3Hibernate基于持久层的框架(数据访问层使用)!


2、DAO层的代码是如何编写的?

(1)操作XML数据

(2)使用Jdbc技术

a)原始的jdbc操作, Connection/Statement/ResultSet

b)自定义一个持久层框架, 封装了dao的通用方法

c)DbUtils组件, 轻量级的dao的组件;

d)Hibernate技术【hibernate最终执行的也是jdbc代码!】


3、ORM和Hibernate


3.1、ORM的概念

O, Object 对象

R, Realtion 关系 (关系型数据库: MySQL, Oracle…)

M,Mapping 映射

ORM, 对象关系映射!

ORM, 解决什么问题?

存储: 把对象的数据直接保存到数据库

获取: 直接从数据库拿到一个对象

想做到上面2点,必须要有映射


3.2、Hibernate和ORM的关系

Hibernate是ORM的实现!


4、组件学习的三方面

1、源码,引入jar文件

2、配置(.xml or .properties)

3、API


5、Hibernate入门

Hibernate开发步骤

(1)下载源码

版本:hibernate-distribution-3.6.0.Final,下载地址如下:

https://sourceforge.net/projects/hibernate/files/hibernate3/3.6.0.Final/

选择141.0MB的文件,它的文件格式是.zip格式的,而下面的文件是.gz格式的。

解压之后,它的源码位于hibernate-distribution-3.6.0.Final\project\core\src目录下


(2)引入jar文件

a)hibernate3.jar (核心文件)

位于hibernate-distribution-3.6.0.Final目录下

b)required (必须引入的jar,共6个)

位于hibernate-distribution-3.6.0.Final\lib\required目录下

c)jpa 目录

位于hibernate-distribution-3.6.0.Final\lib\jpa目录

d)数据库驱动包(我用的是mysql的驱动包)


(3)写对象以及对象的映射

a)Employee.java 对象

import java.util.Date;public class Employee{        private int empId;        private String empName;        private Date workDate;        public int getEmpId()        {                return empId;        }        public void setEmpId(int empId)        {                this.empId = empId;        }        public String getEmpName()        {                return empName;        }        public void setEmpName(String empName)        {                this.empName = empName;        }        public Date getWorkDate()        {                return workDate;        }        public void setWorkDate(Date workDate)        {                this.workDate = workDate;        }}

b)Employee.hbm.xml 对象的映射 (映射文件)

(.hbm可能是hibernate mapping的缩写)

                                                                                                                                                                        


(4)主配置文件 src/hibernate.cfg.xml

a)数据库连接配置

b)加载所用的映射(*.hbm.xml)

                        com.mysql.jdbc.Driver        jdbc:mysql:///test                root        root                        org.hibernate.dialect.MySQL5Dialect                                                true                                true                                update                                                                                    

(5)测试

package com.rk.hibernate.a_hello;import java.util.Date;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.classic.Session;public class App{        public static void main(String[] args)        {                // 对象                Employee emp = new Employee();                emp.setEmpName("张三");                emp.setWorkDate(new Date());                                /*                 * 主体思路:Configuration-->SessionFactory-->Session                 * 细节:Session-->Transaction,必须由session创建transaction,否则无法保存。                 */                // 获取加载配置文件的管理类对象                Configuration config = new Configuration();                config.configure();                // 创建session的工厂对象                SessionFactory sessionFactory = config.buildSessionFactory();                // 创建session (代表一个会话,与数据库连接的会话)                Session session = sessionFactory.openSession();                // 开启事务                Transaction transaction = session.beginTransaction();                //保存数据                session.save(emp);                // 提交事务                transaction.commit();                // 关闭                session.close();                sessionFactory.close();                System.out.println("Over");        }}


0