zoukankan      html  css  js  c++  java
  • 迷茫于Hibernate/JPA的人提一些建议。

    想对那些“迷惑”于Java ORM框架的J2EE开发人员提一些建议,希望能够对他们 
    更深入的理解和运用J2EE ORM框架来提速工作有所帮助,这些建议可能显得有些”陈旧“和”肤浅“, 
    因为最近半年我没有再过多的关注Java ORM,并且也没有继续关注J2EE领域新进展。 

    在合理的使用Java ORM框架之前,必须要对他们有基本的了解,以下几点是最基本的也应该需要 
    深刻掌握的基础: 

    * 关键API接口的深刻理解,并且大致清楚其内部逻辑机制。 


    * 深刻理解经典对象关系与数据库表schema之间的映射关系,特别是外键的关系。理解为何需要如此建立外键。 


    * Session对象状态管理机制的深刻理解,受管对象的状态迁移如何进行? 受管对象的状态如何发生变化? 这些状态对应于 
    底层数据库何种操作(update,insert,delete)? 

    * 级联操作的深刻理解 


    * Session 和 Transaction的关系,Session和Transaction的生命周期。 

    * 一级缓存和二级缓存的深刻理解 

    * 常见的ORM异常错误产生的原因和解决方式: 
    >> a different object with the same identifier value was already associated with the session 
    >> session already closed Exception 

    * Lazy load对于性能优化的作用与机制。 


    * 在二级缓存中存在脏数据的操作陷阱。 

    * 性能调优的基本技巧: 观察生成的SQL,优化HQL/EQL查询。几个基本建议: SQL查询优化技巧完全 
    可以应用于HQL/EQL的查询,比如:合理索引的建立,注意复合索引的处理技巧, 
    避免过长的join,注意Join的顺序,注意where条件的顺序。 

    * 二级缓存的合理优化,如果二级缓存对于内存有限制,请合理设计二级缓存的使用。 

    * 清楚ORM和传统JDBC操作的优缺点,在Ibatis、Spring JDBC Template、ORM等框架间作合理的选择。 

    * 使用Spring框架的时候,深刻理解Spring的事务管理机制。如果是初学,请仔细阅读文档,并反复实践。 

  • 相关阅读:
    51nod 1621 花钱买车牌 优先队列
    最大字段和 51nod 1049 水水水水水水水水水水水水
    大数相乘 51nod 1027 水题
    逆序数 51nod 1019 归并 分治
    最长公共子序列 LCS 递归 dp 51Nod 1006
    vc6 字体设置
    自行车维护大全(zz)
    DirectX 9.0 3D游戏开发编程基础 [书评](zz)
    二维线段树
    latex 引用文献 bib
  • 原文地址:https://www.cnblogs.com/zhanghengscnc/p/8536967.html
Copyright © 2011-2022 走看看