当前位置: 首页 > news >正文

hibernate第二天:hibernate原理

hibernate原理:

1.测试实例

    Student s=new Student();
    s.setId("1");
    s.setName("larry");
    session.save(s)

2.session.save(s)原理如下:
3.session工厂根据配置文件(xx.hbm.xml)生成DML语句

<hibernate-mapping>
	<class name="com.hltech.hibernate.Student">
		<id name="id" />
		<property name="name" />
		<property name="age" />
  </class>	
</hibernate-mapping>

即:session工厂拿到配置文件,然后拼SQL语句
如:insert table Student(id,name,age) value(?,?,?)
3.获取PreparedStatment ps然后设值
ps.setInt(i,t.getXXX);
ps.setString(i+1,t.getXXX);
4.方法名:通过配置文件找到方法名methodName[i]
通过save传入的Student->s对象,
Method m=s.getClass().getMethod(methodName[i]);
{Class r =m.getReturnType();
if(r.getName().equals("java.lang.String)
String returnValue=(String)m.revoke(s); --此处采用反射
即:ps.setString(i,returnValue);
}
5.但是hibernate原理并没有反射而是CGLIB动态代理
CGLIB(Code Generation Library)是一个开源项目!
是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口。
Hibernate支持它来实现PO(Persistent Object 持久化对象)字节码的动态生成。

相关文章:

  • LINUX系统监控
  • hibernate第三天:O/R MAPPING常见框架
  • hadoop on nitrous.io
  • java常见日志理解
  • cobbler使用入门(未完整,待修改)
  • Externalizable和Serializable序列化与关键字transient
  • nmon系统监控工具
  • oracle官方文档使用
  • FlashBuilder(FB/eclipse) 打开多个无效
  • python 读写文件时,r、rt、rb、r+的区别
  • 类什么时候被加载
  • 【异构计算】OpenCL矩阵转置
  • Lazy initialization holder class模式
  • 基于HTTP的WEB服务器端口映射
  • 静态常量(static final)在class文件里是如何的呢?
  • 【Amaple教程】5. 插件
  • 【知识碎片】第三方登录弹窗效果
  • Fundebug计费标准解释:事件数是如何定义的?
  • javascript 哈希表
  • JavaScript创建对象的四种方式
  • JAVA多线程机制解析-volatilesynchronized
  • nodejs调试方法
  • PAT A1017 优先队列
  • Python进阶细节
  • SpiderData 2019年2月23日 DApp数据排行榜
  • storm drpc实例
  • 程序员最讨厌的9句话,你可有补充?
  • 从零开始的无人驾驶 1
  • 从零开始在ubuntu上搭建node开发环境
  • 前端设计模式
  • 一天一个设计模式之JS实现——适配器模式
  • 以太坊客户端Geth命令参数详解
  • 你对linux中grep命令知道多少?
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • hi-nginx-1.3.4编译安装
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 阿里云API、SDK和CLI应用实践方案
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​Spring Boot 分片上传文件
  • ​用户画像从0到100的构建思路
  • !!java web学习笔记(一到五)
  • #预处理和函数的对比以及条件编译
  • (10)STL算法之搜索(二) 二分查找
  • (2)MFC+openGL单文档框架glFrame
  • (C语言)二分查找 超详细
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (南京观海微电子)——COF介绍
  • (三)elasticsearch 源码之启动流程分析
  • (三)Honghu Cloud云架构一定时调度平台
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • .Net - 类的介绍
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .net6使用Sejil可视化日志
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • ??myeclipse+tomcat