posts - 165, comments - 198, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

hibernate + Myeclipes 敏捷(小例)

Posted on 2007-12-11 17:51 G_G 阅读(1645) 评论(1)  编辑  收藏 所属分类: hibernate
对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(
truetrue); 
    }


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)




评论

# re: hibernate + Myeclipes 敏捷(小例)  回复  更多评论   

2007-12-12 10:17 by happycat
挺好,支持楼主。充分利用了myeclipse工具,顺序掌握的合适。

只有注册用户登录后才能发表评论。


网站导航: