hibernate + Myeclipes 敏捷(小例)

对hbn深入过程中,发现开发和设计持久层 到项目后期,越来越困难。在次仔细查分析。特总结一种开发方法。留下与大家分享,欢迎拍砖。

开发过程描述:
1.使用 MyEclipes -> uml  创建类图
2.用 Generate java Code 根据类图生成 java文件
3.使用 Xdoclet 添加 Hbn 标签
4.配置myEclipes -> XDoclet 自动生成 mapping.hbn.xml
5.使用myEclipes 把项目转化成 hibernate  项目
6.使用 org.hibernate.tool.hbm2ddl.SchemaExport 建表

开发过程好处:
1)完全是面向对象,不需要写xml配置文件(XDoclet);
2)项目后期修改容易面对uml
3)用myEclipes 这些都不用去找,直接拿来用(uml,XDoclet,hibernate ..)

下面就来个 小例把
1.MyEclipes 使用 uml 参考-> MyEclipse 5.5 UML 入门视频 ( 作者:BeanSoft)


2.由uml生成类文件


3.先使用 eclipes的 快键方法写 get/set 方法, 类文件文件添加 hbn XDoclet的注解
package  bean;

/**  
 * @hibernate.class table="t1oo"
 
*/
public   class  T1oo {

  
public   int  id;
  
public  String name;
  
public   int  avg;
  
  
/**  
   * @hibernate.property 
   * column="avg"
   * length="4"
   * not-null="true"
   
*/
public   int  getAvg() {
    
return  avg;
}
public   void  setAvg( int  avg) {
    
this .avg  =  avg;
}
/**
 * @hibernate.id 
 * column="id"
 * generator-class="hilo"
 
*/
public   int  getId() {
    
return  id;
}
public   void  setId( int  id) {
    
this .id  =  id;
}
/**
 * @hibernate.property 
 * column="name"
 * not-null="true" 
 * 
@return
 
*/
public  String getName() {
    
return  name;
}
public   void  setName(String name) {
    
this .name  =  name;
}
  

}

4.用myEclipes 生成 XDoclet
在项目点右键-> properties -> MyEclipse-XDoclet ->
在Configuration 空白初点右键 选 add standard -> ... hbn 后面不太好描述 可以查下很简单的 。配置好了运行后就可以看见 多了 个 T1oo.hbm.xml 文件;

5.myEclipes + hbn 就不多说了
6. hbn2java:
     public   void  testCreateTable() throws  Exception{
         HibernateSessionFactory.currentSession();
         HibernateSessionFactory.closeSession();
         
         Field[] ff 
=  HibernateSessionFactory. class .getDeclaredFields();
         Field fie 
=   null  ;
         
for ( int  i = 0 ;i < ff.length;i ++ ){
             
if ( ff[i].getType().equals( Configuration. class  ) ){
                 fie 
=  ff[i];
             }
         }
         fie.setAccessible(
true );
         Configuration cfg 
=  (Configuration)fie.get(HibernateSessionFactory. class );
         cfg.addInputStream( 
this .getClass().getResourceAsStream( " /bean/T1oo.hbm.xml " ) );
         //建表
          SchemaExport dbExport 
=   new  SchemaExport(cfg);
          dbExport.setOutputFile(
" c:\\db\\test.txt " );
          dbExport.create(
true true ); 
    }


sql:
drop table if exists t1oo
drop table if exists hibernate_unique_key
create table t1oo (
    id integer not null,
    avg integer not null,
    name varchar(255) not null,
    primary key (id)
)
create table hibernate_unique_key (
     next_hi integer
)
insert into hibernate_unique_key values ( 0 )


效果:
mysql> show tables;
+----------------------+
| Tables_in_hbn        |
+----------------------+
| hibernate_unique_key |
| t1oo                 |
+----------------------+
2 rows in set (0.00 sec)



你可能感兴趣的:(hibernate + Myeclipes 敏捷(小例))