zoukankan      html  css  js  c++  java
  • Hibernate 自动化工具集

                                                        hibernate 自动化工具箱引入
    引言:
    最近在看持久层的框架模式,研读Martin Flower 的大作《企业应用架构模式》,受益匪浅,很多模式都反映在了现今流行的orm框架之中了.
    因为公司项目中使用的持久层技术为Hibernate,再加上自己想深入的在实践中去领悟Martin 提到的模式。故而花了几天的空闲时间,去拜读了满江
    红开源组织的两位核心人员夏昕,曹晓钢的力作《深入浅出Hibernate》,至此初识hibernate.
    之前一直用sping jdbcTemplate,对hibernate有点疏离,一则是因为项目的技术选型比较死板;二则hibernate的驾驭能力参差不齐.其实说
    句实话,主要原因还是不愿意更新自己的知识,不想去打破固有的工作模式,不想去改进项目的技术架构,再就是公司的学习气氛。我一直认为技术
    以用为本,再好的技术,不用就是浪费,不用就永远不了解,不用就难以领悟其中的思想,优缺点.

    正文:
    下面介绍一些hibernate周边的工具集,包括性能监控及ORM自动化映射工具.
    1 性能监控:
      a、P6SPY P6SPY 模拟了一个标准的jdbc driver ,它代理了真正的底层jdbc 驱动程序
         a1、download address : http://sourceforge.net/projects/p6spy/
         a2、解压p6spy-install.jar ,并将p6spy.jar 拷贝到项目lib目录
         a3、修改p6spy 的配置文件spy.properties,并copy 该文件到项目的src目录下
             #realdriver=com.mysql.jdbc.Driver // 配置为要监控的db 驱动
         a4、修改hibernate.cfg.xml 文件,将连接的db 驱动设置为p6spy提供的代理驱动类;
             <property name="connection.driver_class">com.p6spy.engine.sample.P6SampleDriver</property>
         a5、 查看日志文件,可以通过在spy.properties 配置,默认为在项目根目下spy.log
      b、SQL Profiler (P6Sy的周边工具) 提供图形化界面,以p6spy 的日志输出为来源,提供分析及可视化的界面
         b1、download  address : http://sourceforge.net/projects/sqlprofiler/
         b2、解压sqlprofiler-0.3-bin.zip, 将解压目录下的spy.properties copy到src目录下,
             并修改readldriver 为当前使用的db driver
         b3、运行sqlprofiler.jar ,显示GUI 图形化界面; (java -jar sqlprofiler.jar) 
             该程序会自动监听p6spy 产生的log 信息
             log4j.appender.SQLPROFILER_CLIENT=org.apache.log4j.net.SocketAppender
             log4j.appender.SQLPROFILER_CLIENT.RemoteHost=localhost
             log4j.appender.SQLPROFILER_CLIENT.Port=4445    // 监听端口
             log4j.appender.SQLPROFILER_CLIENT.LocationInfo=true
         b4、其他使用信息,可参看解压目录下的readme.txt 文件
         
    2 ER 模型 --> 类模型 (db schame ---> hbm.xml 映射文件 ---> java pojo)
      a、Middlegen-Hibernate-r5:用于将数据库schame 生成映射文件,及Doclet 元数据定义
         a1 首先需要ant 环境,ANT_HOME=...
         a2 拷贝实际数据库对应的驱动到Middlegen-Hibernate-r5/lib 目录下
         a3 修改Middlegen-Hibernate-r5\config\database\mysql.xml文件如下条目:
            <!--指定要使用的数据库驱动jar包-->
            <property name="database.driver.file"           value="${lib.dir}/mysql-connector-java-5.0.4-bin.jar"/>
         a4 修改Middlegen-Hibernate-r5 目录下的bulid.xml 文件如下:
            第一处:修改引用的数据库配置文件
            <!DOCTYPE project [
               <!ENTITY database SYSTEM "file:./config/database/mysql.xml">
            ]>
            第二处(第184行左右):修改生成的hbm中类的包名
             <!--修改包名-->
             <hibernate
                destination="${build.gen-src.dir}"
                package="com.og.po"  // 修改包名
                genXDocletTags="true" // 修改该标记为true,可以生成doclet tag 元数据,以备后续使用XDoclet 工具生成java pojo类
                genIntergratedCompositeKeys="false"
                javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
             />
         a5 使用ant 工具构建Middlegen GUi ,可以在此界面中调整数据库表之间的关系及hibernate的映射文件表,属性定义;
             完成之后就可以点击Generation 按钮,生成hbm文件    
      b、hibernate-ext: hibernate 扩展工具,可以使用其中的hbm2java 生成具体的java pojo类
         download : http://sourceforge.net/projects/hibernate/files/hibernate-ext/2.1.3/hibernate-extensions-2.1.3.zip/download
      c、hibernate synchronizer:  eclipse 的一个插件,比Middlegen更强大的数据库反向生成hbm的工具;
         download: http://sourceforge.net/projects/hibernatesynch/?source=dlp
      d、jboss tools工具 ,集成eclipse 的插件 Hibernate Code Generation ,可以同时生成hbm及java pojo ,提供表与类的映射关系图
         最重要的配置文件: hibernate console configuration 
         d1 配置hibernate console configuration : new --> other -> hibernate console configuration ;配置简单。
            √ db connection
            √ configuration file : hibernate.cfg.xml (提前提供好)
            
         d2 选择一个java project ,点击run--> hibernate code generation--> hibernate code generation configuration 
         d3 main 选项
               √ Output directory \project\src
               √ Package: com.og.po
               √ 其他默认
            Exporters 选项
                √ Domain code 
                √ Hibernate XML Mappings
                √ DAO code
                √ Hibernate XML Configuration
                
         该工具非常强大;
         d1、 hql editor
         d2、 Hibernate Query result
         d3、 Query parameter 
         d4、 Hibernate Dynamic SQL Preview
      e、jboss tools工具:Data Management 
         --> DataSource  Explorer , 可以提供数据库连接,并可以查看数据库浏览视图,相当于一个客户端软件,可以生成ddl文件
         --> SQL Scrapbook  可以书写sql语句,然后执行,生成结果视图
      f、 MyEclipse 提供的数据库反向工程  
      
    3 类模型  --> ER模型 (java pojo ---> hbm.xml 映射文件 ---> db schame)
      a XDoclet
    参考文献:
    《深入浅出Hibernate》 夏昕,曹晓钢,唐勇
    http://www.hibernate.org hibernate jboss tools

  • 相关阅读:
    玩转Django2.0---Django笔记建站基础十一(一)(音乐网站开发)
    玩转Django2.0---Django笔记建站基础十(二)(常用的Web应用程序)
    玩转Django2.0---Django笔记建站基础十(一)(常用的Web应用程序)
    玩转Django2.0---Django笔记建站基础九(二)(Auth认证系统)
    玩转Django2.0---Django笔记建站基础九(一)(Auth认证系统)
    玩转Django2.0---Django笔记建站基础三(编写URL规则)
    计算机网络自顶向下———网络安全
    计算机网络自顶向下———网络安全(二)
    计算机网络自顶向下 —— 链路层(二)
    计算机网络自顶向下——链路层
  • 原文地址:https://www.cnblogs.com/sunormoon/p/3069938.html
Copyright © 2011-2022 走看看