你可以参考: 快速修改 xdoclet samples ant -build.xml 适应实际开发
此文档为上面的改进版。
1.在 你电脑上建一个 ant第三方扩展文件夹,我这为:D:\ant\lib
2.当使用 eclipse->window->proferences..->ant->Runtime->Global Entries->Add External JARs->选择你建的 ant_lib 下的全部jar;
3.并在Global Entries下加入你的 classpath
使用现成的 xdoclet ant -> 加入自己的 ->
成功后就可以:
使用 xdoclet 面向对象建表 ;
通过 ant -> java2hbn, hbn2ddl,insertSql
在开发过程中当要加 jar 方法为:
1.在 ant_lib 中加入 jar
2.eclipse ->> Global Entries->Add External JARs->
工程转换修改 Global Entries中的classpath
例:
java
unit
结果:
此文档为上面的改进版。
1.在 你电脑上建一个 ant第三方扩展文件夹,我这为:D:\ant\lib
2.当使用 eclipse->window->proferences..->ant->Runtime->Global Entries->Add External JARs->选择你建的 ant_lib 下的全部jar;
3.并在Global Entries下加入你的 classpath
使用现成的 xdoclet ant -> 加入自己的 ->
<
target
name
="hbm2ddl"
depends
="prepare"
>
< mkdir dir ="${hbm2ddl.sql.dir}" />
< taskdef
name ="hbm2ddl"
classname ="org.hibernate.tool.ant.HibernateToolTask" >
</ taskdef >
< hbm2ddl destdir ="${hbm2ddl.sql.dir}" >
< configuration configurationfile ="../src/hibernate.cfg.xml" />
< hbm2ddl export ="true" console ="false" create ="false" update ="false" drop ="false" outputfilename ="bestunix.sql" />
</ hbm2ddl >
<!-- 支持 1.5 泛型请 搜索到xjavadoc最新1.5版本,下载,替换原来的xjavadoc-1.1.x,再次运行xdoclet任务,执行成功! -->
</ target >
< target name ="sql" depends ="hbm2ddl" >
< sql driver ="org.gjt.mm.mysql.Driver" password ="" userid ="root" autocommit ="true"
url ="jdbc:mysql://localhost:3306/zhongqi?characterEncoding=gbk"
src ="../sql/data.sql" print ="yes" output ="sql_out.txt" >
</ sql >
</ target >
< mkdir dir ="${hbm2ddl.sql.dir}" />
< taskdef
name ="hbm2ddl"
classname ="org.hibernate.tool.ant.HibernateToolTask" >
</ taskdef >
< hbm2ddl destdir ="${hbm2ddl.sql.dir}" >
< configuration configurationfile ="../src/hibernate.cfg.xml" />
< hbm2ddl export ="true" console ="false" create ="false" update ="false" drop ="false" outputfilename ="bestunix.sql" />
</ hbm2ddl >
<!-- 支持 1.5 泛型请 搜索到xjavadoc最新1.5版本,下载,替换原来的xjavadoc-1.1.x,再次运行xdoclet任务,执行成功! -->
</ target >
< target name ="sql" depends ="hbm2ddl" >
< sql driver ="org.gjt.mm.mysql.Driver" password ="" userid ="root" autocommit ="true"
url ="jdbc:mysql://localhost:3306/zhongqi?characterEncoding=gbk"
src ="../sql/data.sql" print ="yes" output ="sql_out.txt" >
</ sql >
</ target >
成功后就可以:
使用 xdoclet 面向对象建表 ;
通过 ant -> java2hbn, hbn2ddl,insertSql
在开发过程中当要加 jar 方法为:
1.在 ant_lib 中加入 jar
2.eclipse ->> Global Entries->Add External JARs->
工程转换修改 Global Entries中的classpath
例:
java
package
hbm;
import java.util.Set;
/**
* @hibernate.class table = "level"
* where = " visible = 0 "
* @author Administrator
*
*/
public class Level {
private long id ;
private String name ;
private Level father ;
private Set < Level > childSet ;
private int visible ;
public Level(){}
public Level(String name){ this .name = name ; }
public Level(String name, int visible){ this .visible = visible; this .name = name ; }
/**
* @hibernate.id generator-class = "identity"
* @return
*/
public long getId() {
return id;
}
public void setId( long id) {
this .id = id;
}
/**
* @hibernate.property
* length = "20"
* @return
*/
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
/**
* @hibernate.many-to-one
* cascade = "save-update"
* inverse = "false"
* column = "fid"
* @return
*/
public Level getFather() {
return father;
}
public void setFather(Level father) {
this .father = father;
}
/**
* @hibernate.set
* lazy = "true"
* table = "Level"
* cascade = "save-update"
* where = " visible = 0 "
* @hibernate.collection-key column = "fid"
* @hibernate.collection-one-to-many class = "hbm.Level"
* @return
*/
public Set < Level > getChildSet() {
return childSet;
}
public void setChildSet(Set < Level > childSet) {
this .childSet = childSet;
}
/**
* @hibernate.property
* @return
*/
public int getVisible() {
return visible;
}
public void setVisible( int visible) {
this .visible = visible;
}
}
import java.util.Set;
/**
* @hibernate.class table = "level"
* where = " visible = 0 "
* @author Administrator
*
*/
public class Level {
private long id ;
private String name ;
private Level father ;
private Set < Level > childSet ;
private int visible ;
public Level(){}
public Level(String name){ this .name = name ; }
public Level(String name, int visible){ this .visible = visible; this .name = name ; }
/**
* @hibernate.id generator-class = "identity"
* @return
*/
public long getId() {
return id;
}
public void setId( long id) {
this .id = id;
}
/**
* @hibernate.property
* length = "20"
* @return
*/
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
/**
* @hibernate.many-to-one
* cascade = "save-update"
* inverse = "false"
* column = "fid"
* @return
*/
public Level getFather() {
return father;
}
public void setFather(Level father) {
this .father = father;
}
/**
* @hibernate.set
* lazy = "true"
* table = "Level"
* cascade = "save-update"
* where = " visible = 0 "
* @hibernate.collection-key column = "fid"
* @hibernate.collection-one-to-many class = "hbm.Level"
* @return
*/
public Set < Level > getChildSet() {
return childSet;
}
public void setChildSet(Set < Level > childSet) {
this .childSet = childSet;
}
/**
* @hibernate.property
* @return
*/
public int getVisible() {
return visible;
}
public void setVisible( int visible) {
this .visible = visible;
}
}
unit
package
test;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import hbm.Level;
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import unit.HibernateUtil;
public class HbnUnit {
@Test
public void level() throws Exception {
Session session = HibernateUtil.currentSession();
Transaction tr = session.beginTransaction();
Level level = new Level();
level.setName( " f1 " );
Set < Level > set = new HashSet < Level > ();
set.add( new Level( " c1 " ));
set.add( new Level( " c2 " , 1 ));
set.add( new Level( " c3 " ));
set.add( new Level( " c4 " , 1 ));
set.add( new Level( " c5 " ));
set.add( new Level( " c6 " , 1 ));
level.setChildSet(set);
session.save(level);
session.flush() ;
session.clear();
tr.commit();
}
@Test
public void sAll() throws Exception {
Session session = HibernateUtil.currentSession();
System.out.println( " --------------------------------------------- " );
List < Level > list = session.createQuery( " from Level tl where tl.father is null " ).list();
for ( Level tmp : list ){
System.out.println( " ----> " + tmp.getName() + " visible= " + tmp.getVisible() );
for ( Level tt : tmp.getChildSet() ){
System.out.println( tt.getName() + " visible= " + tt.getVisible() );
}
}
System.out.println( list.get( 0 ).getVisible() + " : " + list.size() );
}
}
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import hbm.Level;
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import unit.HibernateUtil;
public class HbnUnit {
@Test
public void level() throws Exception {
Session session = HibernateUtil.currentSession();
Transaction tr = session.beginTransaction();
Level level = new Level();
level.setName( " f1 " );
Set < Level > set = new HashSet < Level > ();
set.add( new Level( " c1 " ));
set.add( new Level( " c2 " , 1 ));
set.add( new Level( " c3 " ));
set.add( new Level( " c4 " , 1 ));
set.add( new Level( " c5 " ));
set.add( new Level( " c6 " , 1 ));
level.setChildSet(set);
session.save(level);
session.flush() ;
session.clear();
tr.commit();
}
@Test
public void sAll() throws Exception {
Session session = HibernateUtil.currentSession();
System.out.println( " --------------------------------------------- " );
List < Level > list = session.createQuery( " from Level tl where tl.father is null " ).list();
for ( Level tmp : list ){
System.out.println( " ----> " + tmp.getName() + " visible= " + tmp.getVisible() );
for ( Level tt : tmp.getChildSet() ){
System.out.println( tt.getName() + " visible= " + tt.getVisible() );
}
}
System.out.println( list.get( 0 ).getVisible() + " : " + list.size() );
}
}
结果:
Hibernate:
insert
into
level
(name, fid, visible)
values
(?, ?, ?)
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: update level set fid = ? where id = ?
Hibernate: update level set fid = ? where id = ?
Hibernate: update level set fid = ? where id = ?
Hibernate: update level set fid = ? where id = ?
Hibernate: update level set fid = ? where id = ?
Hibernate: update level set fid = ? where id = ?
-- -------------------------------------------
Hibernate: select level0_.id as id0_, level0_.name as name0_, level0_.fid as fid0_, level0_.visible as visible0_ from level level0_ where ( level0_.visible = 0 ) and (level0_.fid is null )
-- -->f1 visible=0
Hibernate: select childset0_.fid as fid1_, childset0_.id as id1_, childset0_.id as id0_0_, childset0_.name as name0_0_, childset0_.fid as fid0_0_, childset0_.visible as visible0_0_ from level childset0_ where ( childset0_.visible = 0 ) and childset0_.fid = ?
c1 visible = 0
c5 visible = 0
c3 visible = 0
0 : 1
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: update level set fid = ? where id = ?
Hibernate: update level set fid = ? where id = ?
Hibernate: update level set fid = ? where id = ?
Hibernate: update level set fid = ? where id = ?
Hibernate: update level set fid = ? where id = ?
Hibernate: update level set fid = ? where id = ?
-- -------------------------------------------
Hibernate: select level0_.id as id0_, level0_.name as name0_, level0_.fid as fid0_, level0_.visible as visible0_ from level level0_ where ( level0_.visible = 0 ) and (level0_.fid is null )
-- -->f1 visible=0
Hibernate: select childset0_.fid as fid1_, childset0_.id as id1_, childset0_.id as id0_0_, childset0_.name as name0_0_, childset0_.fid as fid0_0_, childset0_.visible as visible0_0_ from level childset0_ where ( childset0_.visible = 0 ) and childset0_.fid = ?
c1 visible = 0
c5 visible = 0
c3 visible = 0
0 : 1