版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、STRUTS基础,Hibernate是一个优秀的持久化框架,什么是持久化?,内存,姓名:小颖 性别:女 特长:英语、程序设计,瞬时状态,磁盘,持久状态,用JDBC完成数据在持久和瞬时状态间的转换: stmt.execute ( ) .,瞬时状态:保存在内存的程序数据,程序退出后,数据就消失了,称为瞬时状态,持久状态:保存在磁盘上的程序数据,程序退出后依然存在,称为程序数据的持久状态,持久化: 将程序数据在瞬时状态和持久状态之间转换的机制,持久化,Hibernate是一个主流的ORM框架,什么是ORM?,持久化层,业务逻辑层,表现层,数据库,TBL_User表,关系型数据(R),映射信息,ORM
2、(对象-关系映射): 完成对象数据到关系型数据映射的机制称为对象-关系映射,简称ORM。,使用Hibernate实现用户添加,如何使用Hibernate实现“用户添加”功能? 使用Hibernate的“3个准备,7个步骤” 准备1:导入Hibernate库(jar包),准备1:添加Hibernate库到项目,使用Hibernate的基本步骤,准备2:添加配置文件 - hibernate.cfg.xml, jdbc:microsoft:sqlserver:/localhost:1433;Database=zf sa pwd com.microsoft.jdbc.sqlserver.SQLServ
3、erDriver org.hibernate.dialect.SQLServerDialect true ,配置数据库 链接,数据库“方言”,运行时在控制台显示SQL语句,映射文件,可以有多个,使用Hibernate的基本步骤,准备3:添加实体类和映射文件(User.hbm.xml),package com.aptech.jb.entity; public class User implements java.io.Serializable private Integer uid; private String uname; private String upass; public User(
4、) / 默认构造方法 / Getter and setter ,实现Serializable接口,添加默认构造方法,实体类到表的映射,主键,属性到字段的映射,主键生成器: native 由数据库生成 assigned 在程序中指定,小结,使用Hibernate的三项准备工作是? 添加Hibernate库 添加Hibernate配置文件 添加对应表的实体类和映射文件 Hibernate配置文件中配置了哪些信息? Hibernate使用的实体类和之前定义的实体类有什么区别? 使用Hibernate,系统中添加一个表的时候,都有哪些准备工作要做? 添加实体类 添加映射文件 在hibernate.cf
5、g.xml中增加,使用Hibernate的7个步骤:,使用Hibernate实现用户添加,七个步骤对应的程序代码,public static void main(String args) Configuration conf = new Configuration().configure();/1、读取配置文件 SessionFactory sf = conf.buildSessionFactory();/ 2、创建SessionFactory Session session = sf.openSession();/ 3、打开Session Transaction tx = null; try
6、 tx = session.beginTransaction();/ 4、开始一个事务 / 5、持久化操作 User user = new User(); user.setUname(Hibernate user); user.setUpass(password); session.save(user); mit();/ 6、 提交事务 catch(Exception e) if (null!=tx)tx.rollback(); e.printStackTrace(); finally session.close();/ 7、关闭Session ,执行结果,Hibernate执行过程,Conf
7、iguration,SessionFactory,Session,Transaction,创建,创建,开始,save delete update get mit() session.close(),执行,Hibernate.cfg.xml,结束,创建和销毁都相当耗费资源,通常一个系统内一个数据库只创建一个,类似于JDBC中的 Connection,使用Hibernate实现数据的加载/删除/修改,程序代码,tx = session.beginTransaction(); User user = this.testLoad(id); user.setUname(new Name); sessio
8、n.update(user); mit();,修改,tx = session.beginTransaction(); User user = this.testLoad(id); session.delete(user); mit();,删除,没有更新数据,不进行事务控制,先加载,再更新 不再需要繁琐的逐字段编码,先加载, 再删除,下面这个异常是怎么回事?该怎么解决?,org.hibernate.MappingException: Unknown entity: com.aptech.jb.entity.TblUser at org.hibernate.impl.SessionFactoryI
9、mpl.getEntityPersister (SessionFactoryImpl.java:514) at org.hibernate.event.def.DefaultLoadEventListener.onLoad (DefaultLoadEventListener.java:66) at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862) at org.hibernate.impl.SessionImpl.get(SessionImpl.java:799) at com.aptech.jb.dao.hibimpl
10、.TblUserDAO.findById(TblUserDAO.java:52) at com.aptech.jb.Test.main(Test.java:13),没有在Hibernate.cfg.xml加 ,下面代码有哪些错误?,Transaction tx = null; Session session = HibernateSessionFactory.getSession(); try tx = session.beginTransaction(); session.open(); session.insert(item); session.close(); mit(); catch (Exception e) tx.rollback(); e.printStackTrace
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年交通安全培训长尾词
- 广东省广州市蓝天中学2020-2021学年七年级下学期期末模拟道德与法治试题(含答案)
- 人工踝关节置换术个案护理
- 骨质疏松症患者安全防护与活动指导
- 新兴公司运营责任书(8篇)
- 2024-2025学年反射疗法师大赛理论每日一练试卷完整答案详解
- 市场调研活动启动说明6篇范文
- 2024-2025学年度护士资格证试题含完整答案详解【夺冠】
- 2026年药品生产质量管理规范考试题及答案
- 2024-2025学年临床执业医师自我提分评估附答案详解【突破训练】
- T/CAQI 96-2019产品质量鉴定程序规范总则
- 路亚快艇转让协议书
- 企业自行监测指南培训
- 2025中考英语作文复习:12个写作话题写作指导+满分范文
- 证书合作合同协议
- 尾矿坝工程项目施工方案
- 零基预算研究分析
- 郑州大学高层次人才考核工作实施办法
- 土壤氡浓度检测方案
- 学校食堂副食品配送服务投标方案(技术方案)
- 数学竞赛辅导:《高中数学竞赛辅导班》教案
评论
0/150
提交评论