




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC TS 17012:2024 FR Conformity assessment - Guidelines for the use of remote auditing methods in auditing management systems
- 2025至2030中国电子健康记录(EHR)软件行业产业运行态势及投资规划深度研究报告
- 中医教育中的创新教学方法与实践
- 教育政策对医疗健康人才培养的影响
- 技术驱动的教育政策改革研究
- 2025年中国不锈钢线头剪数据监测研究报告
- 探索教育技术新领域全球医疗健康与教育的结合
- 医疗行业教育市场细分与拓展策略
- 教育领域的数据安全挑战及应对策略研究
- 抖音商户开播前设备检查确认制度
- 部队训练防中暑课件
- 见证取样送检计划方案
- 整形医院年度财务预算计划
- 2024年县乡教师选调进城考试《教育心理学》题库及完整答案【必刷】
- 设备部管理制度范文(2篇)
- 《机械员培训资料》课件
- 装配式围挡施工方案
- 风电项目安全专业监理实施细则
- 01J925-1压型钢板、夹芯板屋面及墙体建筑构造
- 高一化学会考知识点
- 医院信息机房运维服务项目需求
评论
0/150
提交评论