Hibernate的SQL语句是怎么根据XML配置文件生成的(实现原理)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate的SQL语句是怎么根据XML配置文件生成的(实现原理)相关的知识,希望对你有一定的参考价值。
给链接地址也可以
首先,hibernate就是将JDBC封装好了。hibernate的配置文件为源码指定了数据库的一切信息,包含每张表每个字段所对应的类与成员变量。当你调用hibernate的方法后,他会自动查询你调用方法执行的对象映射到数据库中是具体那张表哪个个列。然后通过他封装好的(其实就是做了一边JDBC执行存储过程)方法对数据库进行操作。 参考技术A 它不是开源项目吗?看源码是最好的研究方式。追问暂时懒得看,只是想先了解下
追答其实不用看源码你也可以想到后面是大量的一些解释转换工作。只有sql专家才能做到。
参考技术B 通过解析xml然后根据反射。Mybatis 是如何操作 sql 语句的
相较于jdbc,mybatis多了框架的的封装属性,不会在逻辑代码中描述sql语句,操作数据库。mybatis大大提高业务操作的内聚性,使得效率更高。
相较于hibernate,mybatis多了对sql语句操作的灵活性,不会让sql语句封装在框架中,且sql语句可以方便优化。
mybatis原始操作sql语句的步骤大致为:
1、根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象,该对象包含数据源及一些运行信息
2、sql映射文件,配置了每一个sql,以及sql的封装规则等
3、将sql映射文件注册在全局配置文件中
4、写代码
1)根据全局配置文件得到SqlSessionFactory
2) 使用sqlSessionFactory工厂,获取sqlSession对象使用它来执行增删改查。一个sqlSession就是代表和数据库的一次会话,用完关闭。
3)使用sql的的唯一标志来告诉mybatis执行哪个sql,sql都是保存在sql映射文件中。
代码不重要,原理看懂才重要。
今天想要偷点懒,不想大篇幅的写,你们也省点眼睛看。多陪陪爱的人。
彼岸花开,前世不再。若有来世,可还相识。
以上是关于Hibernate的SQL语句是怎么根据XML配置文件生成的(实现原理)的主要内容,如果未能解决你的问题,请参考以下文章
在使用hibernate的getHibernateTemplate()时怎么让控制台输出封装好的SQL? 怎么用日志打印出来?