http://ameblo.jp/archive-redo-blog/entry-10033356393.html#main
ここを参考に..
build.xml
<?xml version="1.0" encoding="utf-8"?> <project name="Hibernate Sample" default="jar" basedir="."> <target name="init"> <property file="${basedir}/build.properties"/> <path id="lib.class.path"> <pathelement path="${database.driver.classpath}"/> <fileset dir="${middlegen.dir}" includes="**/*.jar"/> <fileset dir="${middlegen.dir}/samples/lib" includes="*.jar"/> <fileset dir="${hibernate-ext.dir}/tools" includes="**/*.jar"/> <fileset dir="${hibernate.dir}" includes="**/*.jar"/> </path> <taskdef name="middlegen" classname="middlegen.MiddlegenTask" classpathref="lib.class.path" /> <taskdef name="hbm2java" classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask" classpathref="lib.class.path" /> </target> <target name="db2hbm" depends="init"> <middlegen appname="${name}" prefsdir="${build.dir}" gui="${gui}" databaseurl="${database.url}" driver="${database.driver}" username="${database.userid}" password="${database.password}" schema="${database.schema}" catalog="${database.catalog}" > <hibernate destination="${src.dir}" package="${package}" genXDocletTags="${gen.xdoclet-tag}" javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper" /> <table name="Tcholdata"/> ここは変更必要 <table name="disease"/> ここは変更必要 </middlegen> </target> <target name="hbm2java" depends="db2hbm"> <hbm2java output="${src.dir}"> <fileset dir="${src.dir}"> <include name="**/*.hbm.xml" /> </fileset> </hbm2java> </target> <target name="compile" depends="hbm2java"> <javac destDir="${build.dir}/classes" srcDir="${build.dir}/classes" classpathref="lib.class.path" /> <copy todir="${build.dir}/classes"> <fileset dir="${src.dir}"> <include name="**/*.hbm.xml" /> </fileset> </copy> </target> <target name="jar" depends="compile"> <jar destfile="${name}.jar"> <fileset dir="${build.dir}/classes"> <include name="**/*" /> </fileset> </jar> </target> </project>
build.properties
middlegen.dir = workspace/middlegen-2.1 hibernate.dir = workspace/hibernate-distribution-3.6.5.Final/lib/required hibernate-ext.dir = workspace/hibernate-extensions-2 src.dir = src build.dir = build database.driver.classpath = /path/to/mysql-connector-java-5.1.17-bin.jar package = testhib name = testhib database.driver = com.mysql.jdbc.Driver database.url = jdbc:mysql://databasehost:3306/databasename database.userid = username database.password = pass database.schema = database.catalog = gui = true gen.xdoclet-tag = true
これで "ant" と入力したらGUIまで立ち上がった
テーブル disease, Tcholdataを作成
テーブルの.javaと.hbm.xmlができたので、testhibパッケージをsrcへ、.hbm.xmlはconfigへ
hibernate-distribution-3.6.5.Final, slf4j-1.6.1, commons-lang-2.6 をそれぞれダウンロードして展開
workspaceに配置して以下を外部JARとして取り込む
workspace/hibernate-distribution-3.6.5.Final/lib/required/antlr-2.7.6.jar workspace/hibernate-distribution-3.6.5.Final/lib/required/commons-collections-3.1.jar workspace/hibernate-distribution-3.6.5.Final/lib/required/dom4j-1.6.1.jar workspace/hibernate-distribution-3.6.5.Final/lib/required/javassist-3.12.0.GA.jar workspace/hibernate-distribution-3.6.5.Final/lib/required/jta-1.1.jar workspace/hibernate-distribution-3.6.5.Final/lib/required/slf4j-api-1.6.1.jar workspace/hibernate-distribution-3.6.5.Final/hibernate3.jar workspace/slf4j-1.6.1/slf4j-nop-1.6.1.jar workspace/commons-lang-2.6/commons-lang-2.6.jar workspace/hibernate-distribution-3.6.5.Final/lib/jpa/hibernate-jpa-2.0-api-1.0.0.Final.jar
<?xml version="1.0"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://DBHOST/DBNAME</property> ここ直してね <property name="connection.username">USERNAME</property> ここ直してね <property name="connection.password">PASSWORD</property> ここ直してね <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">false</property> <property name="use_outer_join">true</property> <mapping resource="Disease.hbm.xml"/> ここ直してね <mapping resource="Tcholdata.hbm.xml"/> ここ直してね </session-factory> </hibernate-configuration>
src/testhibbottom.java
import java.util.List; import org.hibernate.HibernateException; import org.hibernate.cfg.Configuration; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import testhib.Disease; public class testhibbottom { /** * @param args */ public static void main(String[] args) throws HibernateException { Configuration cfg = new Configuration(); cfg.configure(); SessionFactory factory = cfg.buildSessionFactory(); Session s = factory.openSession(); Transaction tx = s.beginTransaction(); try { List list = s.createCriteria(Disease.class).list(); for (int i = 0; i < list.size(); i++) { // レコードとなるオブジェクトを取得 Disease obj = (Disease) list.get(i); System.out.println(obj.getId() + " : " + obj.getName()); } } catch (HibernateException e) { tx.rollback(); } finally { s.close(); } } }
ディレクトリ構造が↓のようになったところで
ビルド、実行すると
2308843 : 実●行● プライバシー保護のため置き換えてあります 2576872 : す●る● プライバシー保護のため置き換えてあります
はーやっとうまくいったわい