/* * 采用常规方法开发一个简单的Hibernate实例 * 创建日期 2005-3-31 * @author javamxj(分享java快乐) * @link Blog: htpp://javamxj.mblogger.cn * htpp://blog.csdn.net/javamxj/ */package javamxj.hibernate;public class User { private int id; private String username; private String password; }
/* * 采用常规方法开发一个简单的Hibernate实例 * 创建日期 2005-3-31 * @author javamxj(分享java快乐) * @link Blog: htpp://javamxj.mblogger.cn * htpp://blog.csdn.net/javamxj/ */package javamxj.hibernate;public class User { private int id; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; }}
<?xml version="1.0" encoding="GBK"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="javamxj.hibernate.User" table="UserTable"> <id name="id"> <generator class="assigned" /> </id> <property name="username" /> <property name="password" /> </class></hibernate-mapping>
<?xml version='1.0' encoding='GBK'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"><hibernate-configuration> <session-factory> <!-- 是否将运行期生成的SQL输出到日志以供调试 --> <property name="show_sql">true</property> <!-- SQL方言,这里设定的是MySQL --> <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property> <!-- JDBC驱动程序 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- JDBC URL, "?useUnicode=true&characterEncoding=GBK" 表示使用GBK进行编码 --> <property name="connection.url"> jdbc:mysql://localhost:3306/HibernateTest?useUnicode=true&characterEncoding=GBK </property> <!-- 数据库用户名 --> <property name="connection.username">root</property> <!-- 数据库密码 --> <property name="connection.password">javamxj</property> <!-- 指定User的映射文件 --> <mapping resource="javamxj/hibernate/User.hbm.xml"/> </session-factory></hibernate-configuration>
/* * 简单测试一下User类 * 创建日期 2005-3-31 * @author javamxj(分享java快乐) */package javamxj.hibernate;import net.sf.hibernate.*;import net.sf.hibernate.cfg.*;public class Test { public static void main(String[] args) { try { SessionFactory sf = new Configuration().configure() .buildSessionFactory(); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); User user = new User(); user.setUsername("Blog"); user.setPassword("分享java快乐"); session.save(user); tx.commit(); session.close(); } catch (HibernateException e) { e.printStackTrace(); } }}
User.hbm.xml
|
<?xml version="1.0" encoding="GBK"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="javamxj.hibernate.User" table="UserTable2"> <meta attribute="class-description"> 运行 Hbm2Java 任务, 利用 hbm.xml文件生成Java类文件 @author javamxj(分享java快乐) @link Blog: htpp://javamxj.mblogger.cn htpp://blog.csdn.net/javamxj/ </meta> <id name="id" type="string" unsaved-value="null" length="32" column="ID"> <generator class="uuid.hex"/> </id> <property name="username" type="string" not-null="true" length="24"> <meta attribute="field-description">@param 用户名</meta> </property> <property name="password" type="string" not-null="true" > <column name="密码" length="24" not-null="true"></column> </property> </class></hibernate-mapping> |
build.xml
<?xml version="1.0" encoding="GBK"?><project name="利用工具开发Hibernate" default="help" basedir="."> <!-- ****** 环境设置,可以根据自己的实际配置自行更改 ***** --> <!-- 源文件目录, 可以通过 项目->属性->Java构建路径 更改 --> <property name="src.dir" value="./src" /> <!-- 输出的class文件目录,可以通过 项目->属性->Java构建路径 更改 --> <property name="class.dir" value="./bin" /> <!-- 库文件目录 --> <property name="lib.dir" value="D:/java/Hibernate/lib" /> <!-- 定义类路径 --> <path id="project.class.path"> <fileset dir="${lib.dir}"> <include name="*.jar"/> </fileset> <pathelement location="${class.dir}" /> </path> <!-- ************************************************************** --> <!-- 使用说明 --> <!-- ************************************************************** --> <target name="help"> <echo message="利用工具开发Hibernate" /> <echo message="-----------------------------------" /> <echo message="" /> <echo message="提供以下任务:" /> <echo message="" /> <echo message="generate-code --> 运行Hbm2Java,利用 hbm.xml 文件生成Java类文件" /> <echo message="generate-hbm --> 运行HibernateDoclet,生成 Hibernate 类的映射文件" /> <echo message="schemaexport --> 运行SchemaExport,利用 hbm.xml 文件生成数据表" /> <echo message="" /> </target> <!-- ************************************************************** --> <!-- Hbm2Java 任务 --> <!-- ************************************************************** --> <target name="generate-code" > <echo message="运行 Hbm2Java 任务, 利用 hbm.xml 文件生成Java类文件"/> <taskdef name="hbm2java" classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask" classpathref="project.class.path"> </taskdef> <hbm2java output="${src.dir}"> <fileset dir="${src.dir}"> <include name="**/*.hbm.xml"/> </fileset> </hbm2java> </target> <!-- ************************************************************** --> <!-- HibernateDoclet 任务 --> <!-- ************************************************************** --> <target name="generate-hbm" > <echo message="运行HibernateDoclet,生成 Hibernate 类的映射文件"/> <taskdef name="hibernatedoclet" classname="xdoclet.modules.hibernate.HibernateDocletTask" classpathref="project.class.path"> </taskdef> <hibernatedoclet destdir="${src.dir}" excludedtags="@version,@author,@todo" force="true" encoding="GBK" verbose="true"> <fileset dir="${src.dir}"> <include name="**/*.java"/> </fileset> <hibernate version="2.0" xmlencoding="GBK" /> </hibernatedoclet> </target> <!-- ************************************************************** --> <!-- SchemaExport 任务 --> <!-- ************************************************************** --> <target name="schemaexport"> <echo message="运行SchemaExport,利用 hbm.xml 文件生成数据表"/> <taskdef name="schemaexport" classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask" classpathref="project.class.path">