版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024产品测试合同范本
- 2024二手机床买卖合同范本
- 2024分公司股权转让合同
- 2024正规理财合同范本
- 2024-2030年全球及中国万能人寿保险行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2024-2030年全球及中国LTE和5G广播行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2024-2030年全球与中国锌空电池市场供需现状及发展趋势分析报告
- 2024-2030年全球与中国臭氧水消毒机市场战略规划及运行状况监测报告
- 2024-2030年全球与中国石英石材行业现状趋势及需求潜力预测报告
- 2024-2030年全球与中国烘箱烤箱行业发展规划及前景需求预测研究报告
- 外科学教案-乳腺疾病
- 国际结算课件汇总全书电子教案完整版课件(最新)
- 中国邮政储蓄银行招聘考试试题
- 学生艺术实践工作坊方案报送表
- 2021年秋新苏教版六年级上册科学全册教案 (含教学计划)
- 黑色可爱卡通文具教学班会PPT模板
- 质量保证体系及措施措施(完整版)
- (生字课件)17、盼 (共15张PPT)
- 仓库虫害控制程序
- 发展循环经济
- 幼儿园PPT课件:《秋分》
评论
0/150
提交评论