Topic: 【原创】hibernate应用配置说明 |
Print this page |
1.【原创】hibernate应用配置说明 | Copy to clipboard |
Posted by: gamebus Posted on: 2003-07-23 15:03 ************************************ 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一下,即可看到数据库已添加了内容 |
2.Re:【原创】hibernate应用配置说明 [Re: gamebus] | Copy to clipboard |
Posted by: gamebus Posted on: 2003-07-24 09:00 为什么没分加,不支持原创吗,还是大家都不感兴趣啊 |
3.Re:【原创】hibernate应用配置说明 [Re: gamebus] | Copy to clipboard |
Posted by: simontang Posted on: 2003-07-24 09:32 呵呵,写得不错,正需要这样的文章。 |
4.Re:【原创】hibernate应用配置说明 [Re: gamebus] | Copy to clipboard |
Posted by: jacob Posted on: 2003-07-24 09:32 I like this one! Good job! |
5.Re:【原创】hibernate应用配置说明 [Re: gamebus] | Copy to clipboard |
Posted by: yadan Posted on: 2003-07-24 10:16 很好啊 兄弟现在hibernate有一定体会了! |
6.Re:【原创】hibernate应用配置说明 [Re: gamebus] | Copy to clipboard |
Posted by: sunzisun Posted on: 2003-07-24 13:09 very good |
7.Re:【原创】hibernate应用配置说明 [Re: gamebus] | Copy to clipboard |
Posted by: why Posted on: 2003-07-24 13:59 gamebus wrote: sometimes we (moderators) are too busy (or whatever reason) to visit the forum, please be patient. |
8.Re:【原创】hibernate应用配置说明 [Re: gamebus] | Copy to clipboard |
Posted by: vivisu Posted on: 2003-07-29 16:24 哈哈,不错啊,我按这个配置,都可以的, |
9.Re:【原创】hibernate应用配置说明 [Re: gamebus] | Copy to clipboard |
Posted by: muziq Posted on: 2003-07-30 08:46 鼓励! |
10.Re:【原创】hibernate应用配置说明 [Re: gamebus] | Copy to clipboard |
Posted by: worldcreatxr Posted on: 2003-08-15 08:56 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(); ===================================== s.load(java.lang.class.Integer) Integer 和 int 有什么区别? 这个调的是哪一个函数啊?这个共有4个同名方法。 ============================ |
11.Re:【原创】hibernate应用配置说明 [Re: gamebus] | Copy to clipboard |
Posted by: nothing Posted on: 2003-08-15 09:12 太好了! |
12.Re:【原创】hibernate应用配置说明 [Re: gamebus] | Copy to clipboard |
Posted by: worldcreatxr Posted on: 2003-08-15 13:26 <hibernate-mapping> <class name="creatxr.demos.struts.services.db.DemoTable" table="T_MEMBER"> <id name="id" type="long" unsaved-value="null"> <column name="ID" sql-type="long" not-null="true"/> <generator class="uuid.hex"/> <!-------------这个到底用什么啊?这个什么uuid.hex哪来的? </id> <property name="name"> <column name="NAME" sql-type="varchar(16)" not-null="true"/> </property> <property name="password"> <column name="PASSWORD" sql-type="varchar(32)" not-null="true"/> </property> <property name="question"> <column name="QUESTION" sql-type="varchar(50)"/> </property> <property name="answer"> <column name="ANSWER" sql-type="varchar(50)"/> </property> </class> </hibernate-mapping> |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |