`

用hibernate也能玩出jdbc的感觉

    博客分类:
  • Java
阅读更多
  相信大家都看了那篇《用jdbc也能玩出hibernate的感觉》的博文,里面的争吵也暂时告了一段落,且不提到最后是新手癖隐藏癖的胜利还是保皇党的成功卫冕,也不提是否应该重复发明轮子这样的老掉牙话题,只提文中的那种玩法,那是牛人们的玩法,比较高级。我们这些新手帖的常客,日夜还要为在简历上写一些精通XX而深感惶恐,是没有精力与境界这样玩的。所以我们有别样的玩法,这个玩法与牛人们的正好相反,就是 用hibernate 也能玩出jdbc的感觉。

  怎么玩法呢?这个玩法比较山寨。其实很简单。诗经三百首,一言以蔽之,思无邪。Hibernate玩jdbc,一言以蔽之,去ORM。具体地说,就是把那些one2many,many2one,many2many通通抛弃,将那些重量级的set通通移除,不再为OO而OO。你称为倒退也可以。当然这个玩法不是我首创的,早在N年前,就有先贤们开始玩了。只是这种玩法缺乏理论支持,现在就让这篇一发出几分钟就可能沦为新手帖的博文来承认这是一种高效而智慧的开发方法。

  用hibernate玩jdbc,不用为支持多数据库烦恼了,不用为延迟加载担惊受怕了,也不用整天研究如何实现分页比较好了。又可以利用hql这个利器,灵活控制各种各样的查询逻辑。总之,就是吸收了hibernate的所有好处,扔掉了所有包袱与累赘。

  这篇神奇的文章,并不是叫你从此后,就用hibernate玩jdbc了。真正要说明的是,人才是语言的主人,人才是框架的主人。一把剑到了你手中,你可以用它杀人,为何就不能用它来劈柴呢。而在高手的眼中,木可为剑,竹叶也可为剑。只有学习了框架,再忘记了框架,才能站在更高的点上,看穿问题的本质,一剑封喉。在技术上,也就是找到最适合的途径简单直接高效地解决问题。



分享到:
评论
7 楼 ricoyu 2010-10-07  
slaser 写道
ricoyu 写道
我就是用hibernate完jdbc, hibernate我只用来完成entity的CRUD操作, 所有的查询都用原生的SQL, 返回的结果集映射到bean里面,完全抛弃了HQL,这玩意太扯了!

Hibernate本身作为jdbc util其实也是比较出色的。

Hibernate本身作为jdbc util其实也是比较出色的, 这句话什么意思?比如我有一个查询涉及到多张表, 涉及子查询, 你用hibernate如何做?我说的所有的查询都用原生的SQL, 返回的结果集映射到bean里面,这是经过我自己对hibernate扩展才实现的,你说的作为jdbc util到底是什么?
6 楼 slaser 2010-10-07  
ricoyu 写道
我就是用hibernate完jdbc, hibernate我只用来完成entity的CRUD操作, 所有的查询都用原生的SQL, 返回的结果集映射到bean里面,完全抛弃了HQL,这玩意太扯了!

Hibernate本身作为jdbc util其实也是比较出色的。
5 楼 ricoyu 2010-10-07  
我就是用hibernate完jdbc, hibernate我只用来完成entity的CRUD操作, 所有的查询都用原生的SQL, 返回的结果集映射到bean里面,完全抛弃了HQL,这玩意太扯了!
4 楼 quxiaoyong 2010-10-06  
我觉得lz此文精辟之极,可惜本人已无法投票。其实所谓的框架都是为了来解决一定问题而出现的,既然如此,那么它就一定有它适用和不适用的范围。在特定的场合,它有利用价值,所以它很成功。但如果不需要它的场合呢?所以看问题还是需要一点辩证的态度的。。。不知道那些老给别人投隐藏或新手帖的看官们,到底是否真正地想过。。
3 楼 mathgl 2010-10-03  
文章在哪里呢?
2 楼 glamey 2010-10-03  
恩。说的很对的。
现在我们项目中也是用的hibernate。但是很多时候就是不用那些one2many之类的东西,就是直接上SQL,需要的时候,再用。很方便,也很好控制的。
1 楼 pengzhoushuo 2010-09-07  
我投了精华,实在太精彩了。框架永远都是框架是死物,人才是活的,无论是JDBC还是Hiberante,哪个顺手用哪个,哪个快捷用哪个,并无优劣。

相关推荐

    Hibernate实践例子程序

    由于Hibernate是基于 JDBC的,所以它的数据库查寻的能力相对于CMP来说也是异常强大的,Hibernate自身也提供了HQL查寻语句。 一个最简单的Hibernate project(不涉及Struts, Tomcat, XDoclet,JBoss等东东)必须的...

    JSP 个人博客 hibernate

    这个博客主要是用JSP+servlet+JavaBea,Dao层除了用Jdbc实现了外,还用Hibernate做了一次实现,提供了两种方案。方案的切换比较简单,写了个Dao工厂类,修改一下daoconfig.properties就可以把实现替换掉。 数据库...

    spring声明式事务管理+jdbc+连接池

    spring声明式事务管理+jdbc+连接池 包内为代码,下载可直接执行。 一直用s2sh,感觉hibernate不好用,所以写了一个spring声明式事务管理+jdbc+连接池。

    基于hibernate/dwr框架实现的web项目

    此外,DWR的异步调用也能减轻服务器压力,提升响应速度。 7. 安全性:在Web项目中,安全性是至关重要的。开发者可能使用了Spring Security或者Apache Shiro等安全框架来保护应用程序免受SQL注入、XSS攻击等威胁,并...

    Struts+hibernate+spring+tiles+validator的整合

    此外,Spring 提供了数据访问抽象,包括JDBC模板和对ORM框架如Hibernate的支持。 **Tiles框架**: Tiles 主要用于Web应用的页面布局。它允许开发者定义可重用的页面片段,然后组合成复杂的页面。这样,开发者可以...

    基于SpringJDBC的轻量级ORM框架sborm.zip

    就是if else ...),但是对于查询业务简单但是数据库集群环境的场景有点憋屈(其实对mybatis使用也不多,瞎评论^_^)。 3、spring jdbc:小巧,灵活,足够优秀,个人比较喜欢使用,但是代码量偏大,原生的接口重复...

    struts2+spring2+hibernate3+velocity+sitemesh集成框架代码

    3. **Hibernate3**:Hibernate是一个对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库,避免了传统的JDBC编码工作。Hibernate3引入了HQL(Hibernate Query Language),类似于SQL,但面向对象。它还...

    MyEclipse 8.5 and 8.0注册码and下载地址和功能介绍

    MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开元产品的专属eclipse开发工 具。作为一款商业eclipse插件来...

    JOOQ jar包

    JOOQ 是基于Java访问关系型数据库的工具包,轻量,简单,并且足够灵活,可以轻松的使用Java面向对象语法来实现各种复杂的sql...对于喜欢写sql的码农来说,JOOQ可以完全满足你控制欲,可以是用Java代码写出sql的感觉来。

    s2sh + extjs4 办公平台架构

    4、使用p6spy 打印出hibernate 中已经替换了占位符参数的sql语句,为hibernate的调试不在感到苦恼 系统部署我使用的ant 部署,代码包含ant部署文件 skyline\coding\src\config\jdbc.properties 为数据库配置...

    review-admin:review的后台管理系统,目前采用dropwizard hibernate-jpa angularjs bootstrap开发

    采用Hibernate是由于对于性能要求不高,所以不采用原生Jdbc处理了 ) 前台采用angularjs+bootstrap,依赖angularjs相关插件 功能: review内容的管理,功能包括:a)关闭 review b)关闭issue c)issue查询 d)issue生成...

    一个简单实用的数据库操作框架

    前言学习JDBC以来一直想实现一个简单的封装来方便编程但是由于水平有限一直没有较好的办法,看了IBM开发网上的两篇文章以后感觉作者的设计思想很好一定能扩充成一个实用的JDBC封装。所以我在文章提供的源码基础上加...

    java常用jar包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,有许多JSON库,如Jackson、Gson、org.json等,它们提供了将Java对象转换为JSON字符串以及...

    jbpm和shark工作流引擎对比.doc

    jbpm使用开源框架Hibernate3,性能非常好,可以配置jdbc连接参数,支持当前大多数流行的数据库。 在流程设计器方面,jbpm使用Xpdl语言定义流程,有一个Jawe来图形化定义流程,功能图形化功能相对较强。jbpm还提供了...

    Maven2 的新特性.7z

    这对于使用类似如Hibernate的用户来说所操的心太多了,而且也不方便。在Maven2中实现了传递依赖,如此对于Hibernate所依赖的包,Maven2会自动下载,开发人员只需关心Hibernate即可。 注意:只有得到Maven支持的依赖...

    spring学习的第三天

    - 能够将Hibernate抛出的异常转换为Spring统一的异常体系,便于上层统一处理。 - **使用方式**: - DAO中注入`HibernateTemplate`:通过在配置文件中配置`SessionFactory`并将其注入到`HibernateTemplate`中,...

    Spring面试题汇总.pdf

    6. 降低API使用难度:如对JDBC、JavaMail等复杂API进行了封装,使其更容易使用。 然而,Spring也存在一些缺点: 1. 易感“大而全”:Spring包含众多模块,可能会给人一种复杂的感觉。 2. 依赖反射:Spring的依赖...

    ssh最新整合jar包

    Hibernate通过ORM(Object-Relational Mapping)技术将Java对象与数据库表进行映射,使得开发者可以使用面向对象的方式来操作数据库,而无需关心底层SQL的编写。这大大提高了开发效率,同时也减少了潜在的错误。 ...

    Java程序猿技术路线图

    Java 程序猿技术路线图 在技术方面,无论我们怎么学习,总感觉需要提升自己不知道自己处于什么水平了。但是,如果有清晰的指示图供参考还是非常不错的,...* Hibernate 持久层框架:MySql、Oracle、SQLServer、JDBC

    Spring+3.x企业应用开发实战光盘源码(全)

     第11章:讲解了如何使用Spring JDBC进行数据访问操作,我们还重点讲述了LOB字段处理、主键产生和获取等难点知识。  第12章:讲解了如何在Spring中集成Hibernate、myBatis等数据访问框架,同时,读者还将学习到ORM...

Global site tag (gtag.js) - Google Analytics