• 迷茫于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的事务管理机制。如果是初学,请仔细阅读文档,并反复实践。 

  • 相关阅读:
    git revert和git reset的区别
    git merge 和 git rebase 小结
    Markdown——入门指南
    使用Git Wiki 管理文档时,文档编写的基本用法
    mysql 列 默认添加 dedault null ??
    redis aof文件过大问题
    redis源码分析——aofrewrite
    改变文章的字号大小
    推荐大家使用的CSS书写规范及顺序
    inline-block 前世今生
  • 原文地址:https://www.cnblogs.com/zhanghengscnc/p/8536967.html
Copyright © 2020-2023  润新知