hibernate应用配置说明
2004-09-25 14:48
573 查看
************************************
hibernate应用配置说明
************************************
************************************
ant配置
************************************
下载ant,解压
将ant考到c:跟目录
环境变量里加上ANT_HOME=c:/ant
PATH=c:/ant/bin;
进入命令行模式,输入: ant
如:
C:/>ant
Buildfile: build.xml does not exist!
Build failed
出现该显示,说明ant已配置成功
************************************
Middlegen hibernate配置
************************************
是hibernate的O/R Mapping工具
http://hibernate.bluemars.net/98.html
可以生成*.hbm.xml文件,是hibernate所需的映射文件
下载Middlegen Hibernate,解压,如D:/hiber/Middlegen-Hibernate-r1/
进入目录,
【配置数据库,以MS SQLSERVER为例,JDBC驱动为JSQL Connect(www.j-netdirect.com)】
1、进入/config/database/目录
2、将JSQLConnect.jar驱动考到/lib/目录
3、编辑mssql.xml文件,如下
<property name="database.script.file" value=""/>
<property name="database.driver.file" value="${lib.dir}/JSQLConnect.jar"/>
<property name="database.driver" value="com.jnetdirect.jsql.JSQLDriver"/>
<property name="database.url" value="jdbc:JSQLConnect://数据库服务器名或IP/database=要操作的数据库名"/>
<property name="database.userid" value="数据库用户名"/>
<property name="database.password" value="数据库密码"/>
<property name="database.schema" value=""/>
<property name="database.catalog" value=""/>
<property name="jboss.datasource.mapping" value="MS SQLSERVER2000"/>
【编辑Middlegen hibernate配置】
1、编辑build.xml
2、修改数据库默认文件,找到这行,大概在22行左右
<!DOCTYPE project [
<!--ENTITY database SYSTEM "file:./config/database/hsqldb.xml"-->//原内容,注解掉
<!ENTITY database SYSTEM "file:./config/database/mssql.xml">//加上
]>
3、编辑输出的根目录名,找到该行,大概在30行左右
<!--property name="name" value="airline"/-->//原内容,注解掉
<property name="name" value="com"/>//加上,value为你想要的,如com
4、编辑输出的包名,找到该行,大概在210行左右
<!--hibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
/-->//原内容,注解掉
<hibernate
destination="${build.gen-src.dir}"
package="${name}.test"
/>//加上,生成的xml文件里,会以com.test作为你的package
输出目录为/build/gen-src/com/test/*.hbm.xml(*为对应的表,命名为你自己所定义的名称)
5、定义输出的目录,找到该行,在文档最后
<target name="validate">
<xmlvalidate failonerror="no" lenient="no" warn="yes">
<fileset dir="${build.gen-src.dir}/com/test" includes="*.xml" />改成你要输出的目录结构,最好以你的包的结构作为目录结构
</xmlvalidate>
</target>
6、在连接Sql server时,提示数据库连接成功,但说没有表,找到该行
<middlegen
appname="${name}"
prefsdir="${src.dir}"
gui="${gui}"
databaseurl="${database.url}"
initialContextFactory="${java.naming.factory.initial}"
providerURL="${java.naming.provider.url}"
datasourceJNDIName="${datasource.jndi.name}"
driver="${database.driver}"
username="${database.userid}"
password="${database.password}"
schema="${database.schema}"//去掉
catalog="${database.catalog}" //去掉,这样就可以了
>
【配置完毕】
配置完毕后,在根目录下运行ant
则会出现一个可视化的操作界面,如图
默认会根据表名和字段名对应生成相应的名称,当然你也可以自己定义,对应没问题,则可以点击【Generate】,在可发现
/build/gen-src/com/test/*.hbm.xml,会生成相应XML文件
************************************
hibernate-extensions-2.0应用配置
************************************
这是hibernate的工具,/tools下有3个工具
class2hbm.bat 根据你自己对应表所写的java文件,生成相应的*.hbm.xml文件
ddl2hbm.bat 根据你的数据库表,自动生成*.hbm.xml和*.java文件(如果不需要详细的配置,建议用这种方式生成*.xml和*.java文件)
hbm2java.bat 根据*.hbm.xml生成相应的*.java文件
用之前,首先得用ant编译
【注意的地方】
build.xml
<property name="hibernate-core.home" value="../../hibernate-2.0"/>//找到该行,40行左右
value为你得hibernate解压目录
【编译完毕】
编译完的文件存放在/tools/target/hibernate-tools-2.0/
现在可以用编译完的执行文件进行映射转化了
【应用】
hbm2java.bat
1、进入命令行模式,进入hibernate-tools-2.0目录,进入/bin
2、首先执行setenv.bat,设置一下环境变量,运行前,先检查一下setenv.bat文件,用文本编辑器打开,找到如下行:
set JDBC_DRIVER=C:/Progra~1/SQLLIB/java/db2java.zip;C:/mm.mysql-2.0.14/mm.mysql-2.0.14-bin.jar;D:/j2sdk1.4.1/lib/JSQLConnect.jar
//将你的JDBC驱动添加进去
rem set HIBERNATE_HOME=../../hibernate-2.0//原来的
set HIBERNATE_HOME=D:/hiber/hibernate-2.0//改成你当前hibernate-2.0所在目录
3、执行hbm2java.bat D:/hiber/com/test/*.xml //后面所跟的是你用Middlegen Hibernate所生成的*.hbm.xml文件
ddl2hbm.bat
1、2步骤如hbm2java
3、运行ddl2hbm,会弹开一个图形界面
4、在Connection面板里,输入JDBC驱动的相关信息,如:
DriverClass:com.jnetdirect.jsql.JSQLDriver
ConnectionUrl:jdbc:JSQLConnect://服务器名/database=数据库名&user=用户名&password=密码(注意这是我所用的驱动支持将用户名和密码放在后面这种格式)
UserName:用户名(我的ConnectionUrl已填写该信息,这里可不填)
PassWord:密码(我的ConnectionUrl已填写该信息,这里可不填)
5、在Code面板里,可以定义包名
6、在Output面板里,可以定义文件输出路径
7、设置好后,进入Table面板,点击tables…按钮,如果数据库连接成功,则会弹开一个小面板,选择你要映射的数据库,点击确定即可,此时
Table面板里就会显示该数据库的所有表格,选择你需要的表,点击“Generate”,则在输出路径里生成*.hbm.xml和*.java文件
【注意的地方】
因为Sqlserver不支持hibernate里的sequences类型,在测试代码时会出错,你打开生成的*.hbm.xml
将
<id column="test_id" name="id" type="java.lang.Long">
<generator class="identity"/>//这里改成identity即可
</id>
************************************
实际应用
************************************
开发环境Jbuilder9
【配置】
1、点击“TOOLS”-“Configure JDK”-,添加hibernate-2.0/lib里如下jar文件
JSQLConnect.jar
hibernate2.jar
commons-beanutils.jar
commons-collections.jar
commons-dbcp.jar
commons-lang.jar
commons-logging.jar
commons-pool.jar
dom4j.jar
cglib-asm.jar
【应用】
新建工程testhiber
新建一个table1.java文件,可建一个空的
将你上面所映射的*.xml和*.java文件考到JB的工程文档里的SRC目录
编译,可看到classes里有*.class文件,如果没有*.xml,则将生成的*.xml考到所对应的目录
将hibernate-2.0/src/hibernate.properties考到classes目录
编辑hibernate.properties
1、属性文件里默认连接数据库是:HSQLDialect,所以需先该一下
## HypersonicSQL ,注销掉其下面的内容,大概在73行
2、修改## JSQL Driver的属性,hibernate对MS SQL默认用的JSQLConnect驱动,大概在103行
## MS SQL Server
#hibernate.dialect net.sf.hibernate.dialect.SybaseDialect
#hibernate.connection.username sa
#hibernate.connection.password
hibernate.dialect net.sf.hibernate.dialect.SybaseDialect
hibernate.connection.username sa
hibernate.connection.password 12345
## JSQL Driver
#hibernate.connection.driver_class com.jnetdirect.jsql.JSQLDriver
#hibernate.connection.url jdbc:JSQLConnect://WL99LCX27
hibernate.connection.driver_class com.jnetdirect.jsql.JSQLDriver
hibernate.connection.url jdbc:JSQLConnect://gamebus/database=test
其余的配置自己看他的在线文档
******************************
编写测试代码
******************************
运行,到数据库里query一下,即可看到数据库已添加了内容
来自:http://www.cjsdn.com/post/view?bid=2&id=41689&tpg=1&ppg=1&sty=1&age=0#41689
hibernate应用配置说明
************************************
************************************
ant配置
************************************
下载ant,解压
将ant考到c:跟目录
环境变量里加上ANT_HOME=c:/ant
PATH=c:/ant/bin;
进入命令行模式,输入: ant
如:
C:/>ant
Buildfile: build.xml does not exist!
Build failed
出现该显示,说明ant已配置成功
************************************
Middlegen hibernate配置
************************************
是hibernate的O/R Mapping工具
http://hibernate.bluemars.net/98.html
可以生成*.hbm.xml文件,是hibernate所需的映射文件
下载Middlegen Hibernate,解压,如D:/hiber/Middlegen-Hibernate-r1/
进入目录,
【配置数据库,以MS SQLSERVER为例,JDBC驱动为JSQL Connect(www.j-netdirect.com)】
1、进入/config/database/目录
2、将JSQLConnect.jar驱动考到/lib/目录
3、编辑mssql.xml文件,如下
<property name="database.script.file" value=""/>
<property name="database.driver.file" value="${lib.dir}/JSQLConnect.jar"/>
<property name="database.driver" value="com.jnetdirect.jsql.JSQLDriver"/>
<property name="database.url" value="jdbc:JSQLConnect://数据库服务器名或IP/database=要操作的数据库名"/>
<property name="database.userid" value="数据库用户名"/>
<property name="database.password" value="数据库密码"/>
<property name="database.schema" value=""/>
<property name="database.catalog" value=""/>
<property name="jboss.datasource.mapping" value="MS SQLSERVER2000"/>
【编辑Middlegen hibernate配置】
1、编辑build.xml
2、修改数据库默认文件,找到这行,大概在22行左右
<!DOCTYPE project [
<!--ENTITY database SYSTEM "file:./config/database/hsqldb.xml"-->//原内容,注解掉
<!ENTITY database SYSTEM "file:./config/database/mssql.xml">//加上
]>
3、编辑输出的根目录名,找到该行,大概在30行左右
<!--property name="name" value="airline"/-->//原内容,注解掉
<property name="name" value="com"/>//加上,value为你想要的,如com
4、编辑输出的包名,找到该行,大概在210行左右
<!--hibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
/-->//原内容,注解掉
<hibernate
destination="${build.gen-src.dir}"
package="${name}.test"
/>//加上,生成的xml文件里,会以com.test作为你的package
输出目录为/build/gen-src/com/test/*.hbm.xml(*为对应的表,命名为你自己所定义的名称)
5、定义输出的目录,找到该行,在文档最后
<target name="validate">
<xmlvalidate failonerror="no" lenient="no" warn="yes">
<fileset dir="${build.gen-src.dir}/com/test" includes="*.xml" />改成你要输出的目录结构,最好以你的包的结构作为目录结构
</xmlvalidate>
</target>
6、在连接Sql server时,提示数据库连接成功,但说没有表,找到该行
<middlegen
appname="${name}"
prefsdir="${src.dir}"
gui="${gui}"
databaseurl="${database.url}"
initialContextFactory="${java.naming.factory.initial}"
providerURL="${java.naming.provider.url}"
datasourceJNDIName="${datasource.jndi.name}"
driver="${database.driver}"
username="${database.userid}"
password="${database.password}"
schema="${database.schema}"//去掉
catalog="${database.catalog}" //去掉,这样就可以了
>
【配置完毕】
配置完毕后,在根目录下运行ant
则会出现一个可视化的操作界面,如图
默认会根据表名和字段名对应生成相应的名称,当然你也可以自己定义,对应没问题,则可以点击【Generate】,在可发现
/build/gen-src/com/test/*.hbm.xml,会生成相应XML文件
************************************
hibernate-extensions-2.0应用配置
************************************
这是hibernate的工具,/tools下有3个工具
class2hbm.bat 根据你自己对应表所写的java文件,生成相应的*.hbm.xml文件
ddl2hbm.bat 根据你的数据库表,自动生成*.hbm.xml和*.java文件(如果不需要详细的配置,建议用这种方式生成*.xml和*.java文件)
hbm2java.bat 根据*.hbm.xml生成相应的*.java文件
用之前,首先得用ant编译
【注意的地方】
build.xml
<property name="hibernate-core.home" value="../../hibernate-2.0"/>//找到该行,40行左右
value为你得hibernate解压目录
【编译完毕】
编译完的文件存放在/tools/target/hibernate-tools-2.0/
现在可以用编译完的执行文件进行映射转化了
【应用】
hbm2java.bat
1、进入命令行模式,进入hibernate-tools-2.0目录,进入/bin
2、首先执行setenv.bat,设置一下环境变量,运行前,先检查一下setenv.bat文件,用文本编辑器打开,找到如下行:
set JDBC_DRIVER=C:/Progra~1/SQLLIB/java/db2java.zip;C:/mm.mysql-2.0.14/mm.mysql-2.0.14-bin.jar;D:/j2sdk1.4.1/lib/JSQLConnect.jar
//将你的JDBC驱动添加进去
rem set HIBERNATE_HOME=../../hibernate-2.0//原来的
set HIBERNATE_HOME=D:/hiber/hibernate-2.0//改成你当前hibernate-2.0所在目录
3、执行hbm2java.bat D:/hiber/com/test/*.xml //后面所跟的是你用Middlegen Hibernate所生成的*.hbm.xml文件
ddl2hbm.bat
1、2步骤如hbm2java
3、运行ddl2hbm,会弹开一个图形界面
4、在Connection面板里,输入JDBC驱动的相关信息,如:
DriverClass:com.jnetdirect.jsql.JSQLDriver
ConnectionUrl:jdbc:JSQLConnect://服务器名/database=数据库名&user=用户名&password=密码(注意这是我所用的驱动支持将用户名和密码放在后面这种格式)
UserName:用户名(我的ConnectionUrl已填写该信息,这里可不填)
PassWord:密码(我的ConnectionUrl已填写该信息,这里可不填)
5、在Code面板里,可以定义包名
6、在Output面板里,可以定义文件输出路径
7、设置好后,进入Table面板,点击tables…按钮,如果数据库连接成功,则会弹开一个小面板,选择你要映射的数据库,点击确定即可,此时
Table面板里就会显示该数据库的所有表格,选择你需要的表,点击“Generate”,则在输出路径里生成*.hbm.xml和*.java文件
【注意的地方】
因为Sqlserver不支持hibernate里的sequences类型,在测试代码时会出错,你打开生成的*.hbm.xml
将
<id column="test_id" name="id" type="java.lang.Long">
<generator class="identity"/>//这里改成identity即可
</id>
************************************
实际应用
************************************
开发环境Jbuilder9
【配置】
1、点击“TOOLS”-“Configure JDK”-,添加hibernate-2.0/lib里如下jar文件
JSQLConnect.jar
hibernate2.jar
commons-beanutils.jar
commons-collections.jar
commons-dbcp.jar
commons-lang.jar
commons-logging.jar
commons-pool.jar
dom4j.jar
cglib-asm.jar
【应用】
新建工程testhiber
新建一个table1.java文件,可建一个空的
将你上面所映射的*.xml和*.java文件考到JB的工程文档里的SRC目录
编译,可看到classes里有*.class文件,如果没有*.xml,则将生成的*.xml考到所对应的目录
将hibernate-2.0/src/hibernate.properties考到classes目录
编辑hibernate.properties
1、属性文件里默认连接数据库是:HSQLDialect,所以需先该一下
## HypersonicSQL ,注销掉其下面的内容,大概在73行
2、修改## JSQL Driver的属性,hibernate对MS SQL默认用的JSQLConnect驱动,大概在103行
## MS SQL Server
#hibernate.dialect net.sf.hibernate.dialect.SybaseDialect
#hibernate.connection.username sa
#hibernate.connection.password
hibernate.dialect net.sf.hibernate.dialect.SybaseDialect
hibernate.connection.username sa
hibernate.connection.password 12345
## JSQL Driver
#hibernate.connection.driver_class com.jnetdirect.jsql.JSQLDriver
#hibernate.connection.url jdbc:JSQLConnect://WL99LCX27
hibernate.connection.driver_class com.jnetdirect.jsql.JSQLDriver
hibernate.connection.url jdbc:JSQLConnect://gamebus/database=test
其余的配置自己看他的在线文档
******************************
编写测试代码
******************************
/*==============================================================*/ /* Table: users */ /*==============================================================*/ create table dbo.users ( userid int identity, username b274 varchar(100) not null, password varchar(100) not null, address varchar(200) null, constraint PK_USER primary key clustered (userid) ) go User.java,这是根据表结构,自动生成的 package com.test; import java.io.Serializable; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; /** @author Hibernate CodeGenerator */ public class User implements Serializable { /** identifier field */ private Integer userid; /** persistent field */ private String username; /** persistent field */ private String password; /** nullable persistent field */ private String address; /** full constructor */ public User(java.lang.Integer userid, java.lang.String username, java.lang.String password, java.lang.String address) { this.userid = userid; this.username = username; this.password = password; this.address = address; } /** default constructor */ public User() { } /** minimal constructor */ public User(java.lang.Integer userid, java.lang.String username, java.lang.String password) { this.userid = userid; this.username = username; this.password = password; } public java.lang.Integer getUserid() { return this.userid; } public void setUserid(java.lang.Integer userid) { this.userid = userid; } public java.lang.String getUsername() { return this.username; } public void setUsername(java.lang.String username) { this.username = username; } public java.lang.String getPassword() { return this.password; } public void setPassword(java.lang.String password) { this.password = password; } public java.lang.String getAddress() { return this.address; } public void setAddress(java.lang.String address) { this.address = address; } public String toString() { return new ToStringBuilder(this) .append("userid", getUserid()) .toString(); } public boolean equals(Object other) { if ( !(other instanceof User) ) return false; User castOther = (User) other; return new EqualsBuilder() .append(this.getUserid(), castOther.getUserid()) .isEquals(); } public int hashCode() { return new HashCodeBuilder() .append(getUserid()) .toHashCode(); } } trun.java,这是用来测试数据库操作 package com.test; /** * <p>Title: 测试JDO</p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author not attributable * @version 1.0 */ import net.sf.hibernate.SessionFactory; import net.sf.hibernate.Session; import net.sf.hibernate.Transaction; import net.sf.hibernate.cfg.Configuration; import net.sf.hibernate.tool.hbm2ddl.SchemaExport; import net.sf.hibernate.Query; import java.util.*; public class trun { private static SessionFactory sf; private static Configuration conf; private Session s=null; public static void main(String args[]) { trun tt = new trun(); //tt.insertdb("hsh","dfaf","23地方"); //tt.deletedb(Integer.decode("2")); //System.out.println(tt.getdb(Integer.decode("4")).getUsername()); //tt.updatedb(Integer.decode("3"),"周华"); /* List mylist=tt.listdb(20,10); if(mylist.size()>0) { User myuser=null; for(int i=0;i<mylist.size();i++) { myuser=(User)mylist.get(i); System.out.println(myuser.getUserid()+":"+myuser.getUsername()); } } else { System.out.println("no find"); } */ } public trun() { try { conf = new Configuration() .addClass(com.test.User.class); //conf.setProperty("hibernate.xml.output_stylesheet","e://hibernate-default.xslt"); System.out.println("prop: "+conf.getProperty("hibernate.xml.output_stylesheet")); sf = conf.buildSessionFactory(); } catch (Exception e) { e.printStackTrace(); } } public List listdb(int start,int pagenum) { List resultlist = null; try { s=sf.openSession(); Transaction t=s.beginTransaction(); Query q=s.createQuery("from User as user order by user.userid"); q.setFirstResult(start); q.setMaxResults(pagenum); resultlist=q.list(); t.commit(); } catch (Exception e) { e.printStackTrace(); } return resultlist; } public void deletedb(Integer uid) { try { s=sf.openSession(); Transaction t=s.beginTransaction(); User my=(User)s.load(User.class,uid); s.delete(my); t.commit(); } catch (Exception e) { e.printStackTrace(); } finally { try{s.close();}catch(Exception e){e.printStackTrace();} } } public void updatedb(Integer uid, String username) { try { s = sf.openSession(); Transaction t=s.beginTransaction(); User my=(User)s.load(User.class,uid); my.setUsername(username); t.commit(); } catch (Exception e) { e.printStackTrace(); } finally{ try{s.close();}catch(Exception e){e.printStackTrace();} } } public User result=null; public User getdb(Integer uid) { try { s = sf.openSession(); Transaction t=s.beginTransaction(); Query q=s.createQuery("from User as user where user.userid=:uid "); q.setParameter("uid",uid); result=(User)q.list().get(0); t.commit(); } catch (Exception e) { e.printStackTrace(); } finally{ try{s.close();}catch(Exception e){} } return result; } public void insertdb(String uname,String pass,String address) { try { s = sf.openSession(); Transaction t=s.beginTransaction(); User u=new User(); u.setUserid(Integer.decode("1")); u.setPassword(pass); u.setUsername(uname); u.setAddress(address); s.save(u); t.commit(); } catch (Exception e) { e.printStackTrace(); } finally{ try{s.close();}catch(Exception e){e.printStackTrace();} } } }
运行,到数据库里query一下,即可看到数据库已添加了内容
来自:http://www.cjsdn.com/post/view?bid=2&id=41689&tpg=1&ppg=1&sty=1&age=0#41689
相关文章推荐
- 转:hibernate应用配置说明-middlegen和hbm2java的配置
- hibernate应用配置说明-middlegen和hbm2java的配置
- hibernate-MySQL配置文件及简单应用(CRUD)
- Hibernate简单配置及应用案例
- spring+hibernate:在applicationCOntext.XML中配置C3P0参数说明
- 【hibernate.cfg.xml】的配置说明
- Hibernate配置文件hibernate.hbm2ddl.auto参数说明
- spring+hibernate:在applicationCOntext.XML中配置C3P0参数说明Attempted to use a closed or broken resource pool
- Hibernate配置文件在单元测试中的应用
- jw player flash网页播放器 参数说明以及应用配置
- 配置一个简单的hibernate应用
- hibernate-extensions-2.1应用配置
- SSH应用之BBS之路-2、Hibernate配置
- Hibernate(二):Hibernate的配置及其元素说明
- Keepalived介绍 , 配置说明 , 及实际应用
- 配置和创建一个hibernate简单应用
- ubuntu+nginx安装配置应用说明
- Hibernate 二级缓存配置和应用
- Hibernate核心配置文件cfg参数说明
- 应用Hibernate开发时几个有用的配置