版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、public class Customerprivate Integer id;private String name;private Integer age;private String des;客户端要插入数据到数据库中Cusltomer c=new Customer();c.setId(1);c.setName(xxx);c.setAge(12);c.保存CustomerDao customerDao=new CustomerDaoImpl();customerDao.saveCustomer(c)查询:CustomerDao customerDao=new CustomerDaoImp
2、l();customerDao.findCustomers()class CustomerDaoImplpublic saveCustomer(Customer c)insert into customers(id,name,age,des)values(c.getId(),c.getName().)save(c)public findCustomer()select id,name,age,des from customer;插入中:如果数据库中的字段发生改变,则所有的 sql语句都要发生变化解决办法;* 让sql语句动态生成* 简单的代码public class Customerpriva
3、te Integer id;private String name;private Integer age;private String des;Customer.hbm.xml文件,描述的是javaBean和表之间的映射关系Cusltomer c=new Customer();save(c);* 利用映射文件生成 sql语句* 利用反射获取c(Customer类型的对象)获取类中所有的属性* 解析上面的xml文件insert into customers(id,namexxx,age,des) values(c.getId(),c.getName().)理解数据库的方言封装连接数据信息的配置
4、文件 ,在该配置文件中加载 Customer.hbm.xml文件hibernate.cfg.xml文件root密码url路径驱动类路径sessionFactory:* 保存连接数据库的信息* javaBean和表之间的映射信息加载sessioncrud创建对数据库执行ConnectionCustomer.hbm.xml文件,描述的是javaBean和表之间的映射关系Cusltomer c=new Customer();save(c);* 利用映射文件生成 sql语句* 利用反射获取c(Customer类型的对象)获取类中所有的属性* 解析上面的xml文件insert into customer
5、s(id,namexxx,age,des) values(c.getId(),c.getName().)域对象间的关系知识点1:Hibernate中持久化类的访问者有两个(从保存和查询两条路线看) 保存查询 java -Stringsql:mysql varchardoubleoracle varchar2number关联:依赖关系:classAa();class Bb()A aa=new A();aa.a();客户端Customer c=new Customer();c.setXxxx()hibernatec.getXxx取值hibernate* 调用javaBean的set方法* 从数据库
6、查询出来值Customer c=new Customer();c.setXxxx()c.getXxxx()session的一级缓存理解int0Integernull学生的考试成绩Integer scope=null;int scope=0;sessionCustomer c1=(Customer)session.get(Customer.class, 2);Customer c2=(Customer)session.get(Customer.class, 2);Customer c3=(Customer)session.get(Customer.class, 3);System.out.pri
7、ntln(c1=c2);System.out.println(c1=c3);c1c2session的快照hibernate* 调用javaBean的set方法* 从数据库查询出来值Customer c=new Customer();c.setXxxx()c.getXxxx()Sessionsession=sf.openSession();Transaction tx=session.beginTransaction();Customer c=(Customer)session.get(Customer.class, 2);c.setName(张成);mit();/刷新session的一级缓存s
8、ession.close();session对象session的一级缓存c理解session.save()方法后,oid有值Testpublicvoid saveCustomer()Sessionsession=sf.openSession();Transaction tx=session.beginTransaction();Customer c=new Customer();c.setName(王太);System.out.println(c.getId()+c.getId();/null/该对象有临时对象转化为 持久对象(进入session的一级缓存)session.save(c);Sy
9、stem.out.println(c.getId()+c.getId();/6/提交到数据库中mit();session.close();离职:* 到人力资源部,申请离职-给以离职单(离职单上有编号 (唯一)* 填离职信息* 此时该离职单没有生效 .在人力已经存在* 盖戳 -此时离职单生效*使用id进行查询数据库,将查询得到的结果放置到session一级缓存中,同时复制一份数据,放置到session的快照中*当使用mit()的时候,同时清理session的一级缓存(flush)*当清理session一级缓存的时候,会使用OID判断一级缓存中对象和快照中的对象进行比对*如果2个对象(一级缓存的对
10、象和快照的对象)中的属性发生变化,则执行update语句,此时更新数据库,更新成一级缓存中的数据*如果2个对象中的属性不发生变化,此时不执行update语句session的快照带走+1increment并发客户端1:Customer c=new Customer();c.setName(王太);/该对象有临时对象转化为持久对象 (进入session的一级缓存)session.save(c);System.out.println(c.getId()+c.getId();/8/提交到数据库中mit();session.close();带走+1increment客户端2:Customer c=new
11、 Customer();c.setName(王太);/该对象有临时对象转化为持久对象 (进入session的一级缓存)session.save(c);System.out.println(c.getId()+c.getId();/8/提交到数据库中mit();session.close();identity 加1带走客户端1:Customer c=new Customer();c.setName(王太);/该对象有临时对象转化为持久对象 (进入session的一级缓存)session.save(c);System.out.println(c.getId()+c.getId();/8/提交到数据
12、库中mit();session.close();客户端2:Customer c=new Customer();c.setName(王太);/该对象有临时对象转化为持久对象 (进入session的一级缓存)session.save(c);System.out.println(c.getId()+c.getId();/9/提交到数据库中mit();session.close();客户端2:Customer c=new Customer();c.setName(王太);/该对象有临时对象转化为持久对象 (进入session的一级缓存)session.save(c);System.out.printl
13、n(c.getId()+c.getId();/9/提交到数据库中mit();session.close();create table customers(idint primary key,namexxxvarchar(12),ageint,destext)create table customers(idint primary key,namexxxvarchar(12),ageint,destext)class CustomerDaoImplpublic saveCustomer(Customer c)insert into customers(id,name,age,des)values
14、(c.getId(),c.getName().)save(c)public findCustomer()select id,name,age,des from customer;插入中:如果数据库中的字段发生改变,则所有的 sql语句都要发生变化解决办法;* 让sql语句动态生成* 简单的代码Customer.hbm.xml文件,描述的是javaBean和表之间的映射关系Cusltomer c=new Customer();save(c);* 利用映射文件生成 sql语句* 利用反射获取c(Customer类型的对象)获取类中所有的属性* 解析上面的xml文件insert into custo
15、mers(id,namexxx,age,des) values(c.getId(),c.getName().)DataSource(连接池),存放多个连接创建crud对数据库执行mysql数据Customer.hbm.xml文件,描述的是javaBean和表之间的映射关系Cusltomer c=new Customer();save(c);* 利用映射文件生成 sql语句* 利用反射获取c(Customer类型的对象)获取类中所有的属性* 解析上面的xml文件insert into customers(id,namexxx,age,des) values(c.getId(),c.getName().)封装连接数据信息的配置文件 ,在该配置文件中加载 Customer.hbm.xml文件hibernate.cfg.xml文件root密码url路径驱动类路径Connection:oracle数据s知识点1:Hibernate中持久化类的访问者有两个(从保存和查询两条路线看) hibernatec.getXxx取值hibernate* 调用javaBean的set方法* 从数据库查询出来值Customer c=new Customer();c.setXxxx()mysql数据一级缓存:customer对象oid=2customer对象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心血管疾病甲基化风险评估模型
- 心脏移植供体分配的伦理审查时效性提升
- 心脏基因编辑个体化治疗策略优化
- 心理行为干预在慢病防控中的作用
- 微创治疗脑胶质瘤:超声吸引与神经内镜协同
- 2025年国画装裱施工合同协议
- 建筑工人肌肉骨骼疾病职业培训效果
- 康复治疗师职业健康与患者康复效果及组织承诺的关系
- 康复医学临床带教能力提升方案
- 应急响应时间管理基层优化策略
- 辽宁省沈阳市皇姑区2024-2025学年八年级上学期英语期末试卷
- 2026年交管12123学法减分复习考试题库含答案(新)
- 2025交通行业高质量数据集建设指南
- 2026年度安全教育培训计划培训记录(1-12个月附每月内容模板)
- 2026中储粮储运有限公司招聘47人考试历年真题汇编附答案解析
- 活力全运普惠万家“十五全运会”热点素材(五大主题 五篇范文)-备战高考作文热点新闻素材积累解读与习作训练
- 2026宁电投(石嘴山市)能源发展有限公司秋季校园招聘100人考试笔试参考题库附答案解析
- 全国邮政行业职业技能竞赛参考资料考试题库(含答案)
- 雨课堂在线学堂《自然辩证法概论》作业单元考核答案
- 采耳培训工作流程
- 2025年海南省中考数学真题(含答案)
评论
0/150
提交评论