最近看了一本关于Hibernate开发的书.自己尝试了一下.
1.首先准备环境,以下Hibernate及其插件的下载地址http://prdownloads.sourceforge.net/hibernate/?sort_by=date&sort=desc
Hibernate
MiddleGen-Hibernate
Hibernate-Extentions
2.Hibernate基础代码包括
POJO
POJO在Hibernate里应该理解成数据库表所对应的Domain Object.POJO就是“Plain Ordinary Java Object“ 无格式的普通Java对象.可以理解为不包含逻辑代码的值对象(Value Object)
public class TUser implements Serializable
{
private String name;
public User(String name)
{
this.name = name;
}
/** default constructor */
public User()
{
}
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name = name;
}
}
Hibernate映射文件
Hibernate 从本质上来讲是一种“对象-关系型数据映射”(Object Relational
Mapping 简称ORM)。前面的POJO在这里体现的就是ORM中Object层的语义,
而映射(Mapping)文件则是将对象(Object)与关系型数据(Relational)相关联的纽带,在Hibernate中,映射文件通常以“.hbm.xml”作为后缀。
3.由数据库来产生基础代码
Hibernate官方提供的MiddleGen for Hibernate 和Hibernate_Extension工具包,我
以很方便的根据现有数据库,导出数据库表结构,生成ORM和POJO。下面就来做个示例.
4.接压缩MiddleGen-Hibernate到 C:\work\MiddleGen.
5.接压缩Hibernate 到 C:\work\Hibernate.
6.接压缩Extentions到 c:\work\Extentions
7.进入MiddleGen目录的\config\database子目录.我们这里用的是Sqlserver2000,所以选择mssql.xml
打开 mssql.xml
<property name="database.script.file" value=""/>
<property name="database.driver.file" value="${lib.dir}/Sprinta2000.jar"/>
<property name="database.driver" value="com.inet.tds.TdsDriver"/>
<property name="database.url" value="jdbc:inetdae7:localhost?database=airline"/>
<property name="database.userid" value="sa"/>
<property name="database.password" value="sa"/>
<property name="database.schema" value=""/>
<property name="database.catalog" value=""/>
<property name="jboss.datasource.mapping" value="MS SQLSERVER"/>
这里修改一下
我们把下载好的jdbc for sqlserver2000安装了后,把安装目录的\lib目录下面的3个jar文件放到Middlegen的lib目录里面.
<property name="database.driver.file" value="${lib.dir}/mssqlserver.jar"/> //驱动jar文件
<property name="database.driver" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>//用winrar打开上面的jar文件就可以看到SQLServerDriver.class在jar文件中的路径了
<property name="database.url" value="jdbc:microsoft:sqlserver://localhost:1433;database=Northwind"/>
//数据库的路径.前面的“jdbc.microsoft.sqlserver“
<property name="database.userid" value="sa"/>//用户名
<property name="database.password" value=""/>//密码
<property name="database.schema" value="dbo"/>//一定要写,很重要
<property name="database.catalog" value="Northwind"/>//一定要写很重要
8.配置build.xml文件(下面只是个人做一些测试,可以根据自己的需要来进行修改)
查找关键字 ”!ENTITY”,得到:
<!DOCTYPE project [
<!ENTITY database SYSTEM "file:./config/database/hsqldb.xml">
]>
因为默认MiddleGen是采用hsql.xml,所以修改成我们的mssql.xml
<!DOCTYPE project [
<!ENTITY database SYSTEM "file:./config/database/hsqldb.xml">
]>
修改程序的name
<property name="name" value="airline"/>
修改成
<property name="name" value="sample"/>
修改输出目录
查找“name="build.gen-src.dir"“
<property name="build.gen-src.dir" value="${build.dir}/gen-src"/>
修改成
<property name="build.gen-src.dir" value="c:\sample"/>
修改Package 名称
查找“<hibernate“
<hibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
genXDocletTags="false"
genIntergratedCompositeKeys="false"
javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
/>
把pachage属性修改为
<hibernate
destination="${build.gen-src.dir}"
package="org.hibernate.sample"
genXDocletTags="true"
genIntergratedCompositeKeys="false"
javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
/>
这里的genXDocletTags是设置在生成代码的时候是否生成XDoclettags,这个很重要,我们设置成true.
9.配置ant的路径,解压缩下载的ant后,比如c:\ant
我们右击我的电脑->熟悉->高级->编辑path的熟悉
在后面加入c:\ant\bin
10.点击开始-->运行-->cmd
cd到我们的MiddleGen目录 ,运行ant
如果提示连接数据库失败的话那就是mssql.xml没有配置好
如果显示连接数据库成功,没有找到table的话就是schemas和catalogs没有配置对了.
11.如果没有出错的话会启动一个界面,然后点击最上面的generae就可以生成POJO文件了.