Java技术
JJp 的基本数据是于伶的《学日语背单词 1.0 》所带的 japan.mdb 中的单词表和《新版标准日本语》词汇表( Excel ),而我学过的数据库系统是 Oracle 和 mysql 。在这些格式中转换需要很大的工作量,我写了几个 Java 类来做转换,还没有做完整。同学说,使用 Hibernate 可以避免这个问题,并且可以可以很快的封装数据层,所以决定用她了。
从 Hibernate3.0 中文参考手册大致浏览了一下,然后使用 MyEclipse 的工具配置并生成了实体类,初次使用,感觉非常棒!下面介绍一下配置过程。
首先得有数据库,这里使用 Mysql5.0 。 Hibernate 也可以自动生成 Schema ,但是已经有数据库(由 PowerDesigner9.5 生成)和数据(从 japan.mdb 和 Excel 导入)了,所以没那么做,今后有机会再研究一下。 JJp 数据库结构如下:
首先,在 MyEclipse 里配置数据库连接。在 Pereferences 里 MyEclipse 下有一个 Database Explorer 选项里配置 Mysql 驱动程序“ MySQL Connector/J Driver ”,主要是选择 mysql-connector-java-5.0.0-beta 的 jar 包,如果成功,驱动名称前面会出现对号。
然后,将项目转换为 Hibernate 兼容。方法是右键点击项目名称,在 MyEclipse 里选择“ Add Hibernate Capabilites ”。这时会出现对话框,依次选择库文件夹 Library Folder 、配置文件路径 Configuration Folder 并自动创建 Session 工厂类(用于获取 Hibernate 的 Session ),成功之后,出现 hibernate.cfg.xml 配置工具。
接下来是配置 hibernate.cfg.xml 。数据库连接选择 JDBC 并使用 MySQL Connector/J Driver 创建一个 profile ,右边参数里添加一个 show-sql 设为 true. 。配置文件如下:
下一步是添加 Mapping( 数据库表与 Java 实体类的映射 ) 。打开 Database Explorer 视图,建立一个数据库连接,这里还是使用上面的 MySQL Connector/J Driver ,如果驱动没设置好,相关的操作都不会成功。然后连接到数据库上,展开 Tables ,右键某个表,选择 生成映射 Generate hibernate mapping ;选择实体类位置和 ID 生成器为“ sequence ”即可。将所有表的映射生成完毕,自动配置就结束了。这时 hibernate.cfg.xml 如下:
实体类映射配置文件中以 Word.hbm.xml 为例:
如果没有特殊要求,
使用 Session 工厂类 HibernateSessionFactory 的方法 currentSession() 取得一个 Session ,然后就可以通过 Session 对数据库进行各种操作了。例如, JJp 中词汇表类 Vocabulary 取得所有单词的方法 getWords() 可以这样写:
其中 session.createQuery("from Word") 的 ”from Word” 是 HQL , HQL 使用方法请查看 hibernate 参考手册。
在 HQL 方面有一个中文问题,下面代码
Collection result = session.createQuery(
"from Word where chinese LIKE '%" + hiragana + "%'").list();
其中的 hiragana 在自动生成 SQL 语句的时候被转换成乱码,在网上查找,据说是 hibernate 版本的问题,但是网上的解决方法我没有成功,现在用了一个替代方案。
上面是 JJp 中使用 hibernate 的简要介绍。
现在 JJp 开发工具是 JDK1.5.0.6+Eclipse3.1.1+MyEclipse4.0.0.1GA+JBuilder2006 ,其他工具有 PowerDesigner9.5+ MysqlMigrationTool+RationalRose2002 等,数据库有 Access2003+Excel2003+Mysql5.0.19+Oracle9i 。
posted on 2006-03-13 22:59 北方苍狼 阅读(415) 评论(0) 编辑 收藏 所属分类: JJpStudy
Powered by: BlogJava Copyright © 北方苍狼