hibernate7步增删改.docx
- 文档编号:29563777
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:24
- 大小:24.28KB
hibernate7步增删改.docx
《hibernate7步增删改.docx》由会员分享,可在线阅读,更多相关《hibernate7步增删改.docx(24页珍藏版)》请在冰豆网上搜索。
hibernate7步增删改
hibernate框架介绍如下
1.框架=模板
2.Hibernate是对象模型与关系数据库模型之间的桥梁
3.hibernate持久化概念
什么是ORM
ORM是对象关系映射,是一种数据持久化操作(增删改查),
它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过javabean对象去操作数据库中数据.
4.hiberante概念
hibernate就是采用orm对象关系映射技术的持久化开发框架.
5.hibernate优缺点及使用场合
1.优点
hibernate很强大,减少了传统jdbc链接数据库的代码,提供了持久化代码的开发速度,降低了维护成本.
hibernate支持很多面向对象的特性.如组合,继承,多态等.使得开发人员必须在面向业务领域的对象模型和面向数据库的关系数据库模型之间来回切换,方便开发人员进行面向对象的设计和开发.
可移植性好.系统不会绑定在某个特定的关系型数据上,对于系统更换数据库,通常只需要修改hibernate配置文件即可正常运行
hibernate框架是开源免费的,可以在需要时研究源代码,改写源代码,进行功能定制,具有可扩展性.
2.缺点
不适合以数据为中心大量使用存储过程的应用.
大规模的批量插入,修改和删除不适用于hibernate
3.适用场合
hibernate适用于大中型项目
hibernate不适用于小型项目,
hibernate不适合用于关系模型设计不合理,不规范的系统
6.hibernate框架搭建步骤:
1.下载需要的jar包
(1)slf4j-log4j12-1.5.8.jar
hibernate日志记录文件,在控制台打印系统内部完成操作的一些结果,比如hiberante给你拼装的sql,和hibernate启动信息
(2)antlr-2.7.6.jar
语法分析器
(3)commons-collections-3.1.jar
各种集合类和集合工具类的封装
(4)commons-dbcp.jar
(5)commons-dbcp-1.2.1.jar
(6)commons-lang-1.0.1.jar
(7)commons-logging-1.0.4.jar
(8)commons-pool-1.2.jar
数据池
(9)dom4j-1.6.1.jar
XML的读写
(10)hibernate3.jar
hiberante核心文件封装了hibernate使用的接口和类
(11)javassist-3.9.0.GA.jar
分析,编辑和创建java字节码的类库
(12)jta.jar
java事务API
(13)log4j-1.2.8.jar
日志操作
(14)slf4j-api-1.5.8.jar
2.将上述jar文件和oracle的jar文件加载到web项目中
3.在src下创建hibernate主配置文件hiberante.cfg.xml
该配置文件主要用于配置数据库链接和hibernate运行时所需要的各种特性.
该文件要在web项目的src根目录下创建
步骤:
选中src
new
xml(BasicTemplate)
输入名字:
hibernate.cfg.xml
选择createxmlfilefromaDTDfile
选择SelectXMLCatalogentry
在XMLCatalog列表框中找到"-//Hibernate/HibernateConfigurationDTD3.0//EN"
常用参数说明
1
xmlversion="1.0"encoding="UTF-8"?
>
2
DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/HibernateConfigurationDTD3.0//EN"">
3
4
--session会话工厂配置数据源-->
5
6
--1.链接数据库的driver-->
7
8
--2.链接数据库的url-->
9
oracle:
thin:
@127.0.0.1:
1521:
orcl
10
--3.链接数据库的用户名-->
11
12
--4.链接数据库的密码-->
13
14
--5.配置数据库的方言-->
15
16
--6.配置是否在控制台显示hibernate封装的sql-->
17
18
--7.sql语句格式化-->
19
20
21
二、使用hibernate实现全套正删改查
2.1创建项目Hibernate_Part1并在项目的WebRoot下的WEB-INF下的lib文件下加入如下jar文件:
1slf4j-log4j12-1.5.8.jar
2antlr-2.7.6.jar
3commons-collections-3.1.jar
4commons-dbcp.jar
5commons-dbcp-1.2.1.jar
6commons-lang-1.0.1.jar
7commons-logging-1.0.4.jar
8commons-pool-1.2.jar
9dom4j-1.6.1.jar
10hibernate3.jar
11javassist-3.9.0.GA.jar
12jta.jar
13log4j-1.2.8.jar
14slf4j-api-1.5.8.jar
2.2在项目的src下创建hibernate.cfg.xml主配置文件
1
xmlversion="1.0"encoding="UTF-8"?
>
2
DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/HibernateConfigurationDTD3.0//EN"">
3
4
5
--oracle驱动-->
6
7
--连接数据库url-->
8
oracle:
thin:
@127.0.0.1:
1521:
orcl
9
--连接数据库用户名-->
10
11
--连接数据库密码-->
12
13
--数据库方言-->
14
15
--显示sql语句-->
16
17
--sql语句格式化-->
18
19
20
--注册映射文件-->
21
22
23
2.3在src下的com.entity包下创建Dept.java文件
1packagecom.entity;
2
3
4publicclassDept{
5
6privateIntegerdeptno;
7privateStringdeptname;
8privateStringloc;
9
10publicDept(){
11}
12
13publicDept(Integerdeptno,Stringdeptname,Stringloc){
14this.deptno=deptno;
15this.deptname=deptname;
16this.loc=loc;
17}
18
19publicIntegergetDeptno(){
20returndeptno;
21}
22
23publicvoidsetDeptno(Integerdeptno){
24this.deptno=deptno;
25}
26
27publicStringgetDeptname(){
28returndeptname;
29}
30
31publicvoidsetDeptname(Stringdeptname){
32this.deptname=deptname;
33}
34
35publicStringgetLoc(){
36returnloc;
37}
38
39publicvoidsetLoc(Stringloc){
40this.loc=loc;
41}
42
43@Override
44publicStringtoString(){
45return"Dept[deptname="+deptname+",deptno="+deptno+",loc="+loc
46+"]";
47}
48
49
50}
2.4在src下的com.entity包下创建Dept.hbm.xml文件
1
xmlversion="1.0"encoding="UTF-8"?
>
2
DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"">
3
4
5
6
7
8
9
10
11
2.5在src下的com.dao包下创建DeptDao.java文件
1packagecom.dao;
2importjava.io.Serializable;
3
4importorg.hibernate.Session;
5importorg.hibernate.SessionFactory;
6importorg.hibernate.Transaction;
7importorg.hibernate.cfg.Configuration;
8
9importcom.entity.Dept;
10
11publicclassDeptDaoimplementsSerializable{
12/**
13*
14*/
15privatestaticfinallongserialVersionUID=7318695909579058942L;
16
17
18/**
19*1.get方法查询当查不到返回null
20*关闭session能读取到
21*@paramid
22*/
23publicstaticvoidgetDept(Integerid){
24//1.读取配置文件
25Configurationconfiguration=newConfiguration().configure("/hibernate.cfg.xml");
26
27//2.创建Session工厂
28SessionFactorysessionFactory=configuration.buildSessionFactory();
29
30//3.打开Session
31Sessionsession=sessionFactory.openSession();
32
33//4.开启事务(查询不需要)
34Transactiontx=session.beginTransaction();
35
36//5.执行操作
37Deptdept=(Dept)session.get(Dept.class,id);
38if(dept!
=null){
39System.out.println("查到了");
40System.out.println(dept);
41
42}else{
43System.out.println("没查到");
44}
45
46//6.提交事务(查询不需要)
47mit();
48
49
50//7.关闭session
51session.close();
52
53
54
55
56}
57
58/**
59*2.load方法查询当查不到报出异常
60*关闭session读取不到,报出异常
61*@paramid
62*/
63publicstaticvoidloadDept(Integerid){
64//1.读取配置文件
65Configurationconfiguration=newConfiguration().configure("/hibernate.cfg.xml");
66
67//2.创建Session工厂
68SessionFactorysessionFactory=configuration.buildSessionFactory();
69
70//3.打开Session
71Sessionsession=sessionFactory.openSession();
72
73//4.开启事务(查询不需要)
74Transactiontx=session.beginTransaction();
75
76//5.执行操作
77Deptdept=(Dept)session.load(Dept.class,id);
78
79//6.提交事务(查询不需要)
80mit();
81
82System.out.println(dept);
83
84//7.关闭session
85session.close();
86
87}
88
89/**
90*添加
91*@paramdept
92*/
93publicstaticvoidsaveDept(Deptdept){
94//1.读取配置文件
95Configurationconfiguration=newConfiguration().configure("/hibernate.cfg.xml");
96
97//2.创建Session工厂
98SessionFactorysessionFactory=configuration.buildSessionFactory();
99
100//3.打开Session
101Sessionsession=sessionFactory.openSession();
102
103//4.开启事务
104Transactiontx=session.beginTransaction();
105
106//5.执行操作
107session.save(dept);
108
109
110//6.提交事务
111mit();
112
113System.out.println("插入成功");
114
115//7.关闭session
116session.close();
117}
118
119/**
120*修改1
121*先查询单条再次修改
122*@paramdept
123*/
124publicstaticvoidupdateDept(Integerid){
125//1.读取配置文件
126Configurationconfiguration=newConfiguration().configure("/hibernate.cfg.xml");
127
128//2.创建Session工厂
129SessionFactorysessionFactory=configuration.buildSessionFactory();
130
131//3.打开Session
132Sessionsession=sessionFactory.openSession();
133
134//4.开启事务
135Transactiontx=session.beginTransaction();
136
137//5.执行操作
138//查询
139Deptdept=(Dept)session.get(Dept.class,id);
140
141//修改
142dept.setDeptname("不知道");
143//6.提交事务
144mit();
145
146System.out.println("修改成功");
147
148//7.关闭session
149session.close();
150}
151
152
153/**
154*删除对象
155*先查询单条再删除
156*@paramdept
157*/
158publicstaticvoiddeleteDept(Integerid){
159//1.读取配置文件
160Configurationconfiguration=newConfiguration().configure("/hibernate.cfg.xml");
161
162//2.创建Session工厂
163SessionFactorysessionFactory=configuration.buildSessionFactory();
164
165//3.打开Session
166Sessionsession=sessionFactory.openSession();
167
168//4.开启事务
169Transactiontx=session.beginTransaction();
170
171//5.执行操作
172//查询
173Deptdept=(Dept)session.get(Dept.class,id);
174
175//删除对象
176session.delete(dept);
177
178//6.提交事务
179mit();
180
181System.out.println("删除成功");
182
183//7.关闭session
184session.close();
185}
186
187publicstaticvoidmain(String[]args){
188//getDept(10);
189//loadDept(10);
190//Deptdept=newDept(1,"TB07","青鸟学社");
191//saveDept(dept);
192//updateDept
(1);
193//getDept
(1);
194deleteDept
(1);
195getDept
(1);
196}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- hibernate7 增删