Hibernate + Oracle 结合
Posted 窗外是绿色的
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate + Oracle 结合相关的知识,希望对你有一定的参考价值。
以前都是通过Hibernate + mysql 来实现数据库查询与修改的,因为 mysql 数据库 较oracle数据库简单些,最近在看Oracle的书籍,今下午尝试了下Hibernate 框架下操作Oracle数据库:
1.新建 WEB Project 项目 “OracleTest”;
2.导入Hibernate 框架;
3. 在MyEclipse 中 创建 Oracle 某个数据库的连接
(Windos -- Show View -- DB Browser )调出 DB Browser 功能;
空白处,右键,单击 “New” ,开始新建 连接项
给连接项 起一个好记且有意义的名字,例如:oracle_hello (连接 oracle 的 hello 数据库)
选择 Oracle (OCI Driver)或者 Oracle (Thin Driver)均可,(OCI 需要本地安装Oracle 客户端,所以一般用Thin Driver即可);
按照模板填好 Connection URL ,例如:jdbc:oracle:thin@localhost:1521:hello;
填好 User name ,这里为 system;
填好 Pasword ;
然后点击“Add JARs” 选择好本地的 Oracle 的jdbc 的驱动包;
Driver classname 选择 “oracle.jdbc.driver.OracleDriver”;
填好上述信息后,单击“Test Driver” 测试一下所填信息是否正确,如果正确,一切OK;否则,仔细看看上述信息有没有错误;
4. 建好连接项后,可以打开连接项,选择好要导入的表,然后右键,点击“Hibernate Reverse Engineering” 即可将映射信息导入到项目中
(选择 Id Generator 时 ,一般选择 assigned,想要自动增长而不用专门去数据库查询,可以选择increment选项);
通过java访问数据库,查询并保存信息;
有一点需要特别注意,虽然Hibernate 框架可以自动生成映射文件和数据库连接文件,但是由于Oracle的特殊性,Hiberntate生成的实体类文件中的字段的类型不一定合适:
例如:笔者数据库里的id字段是NUMBER类型,Hibernate会自动映射成BigDecimal,BigDecimal类型的数据不能像int类型那样简单进行+-*/,而是需要调用特殊方法才可以,所有笔者将实体类文件里的BigDecimal 类型改成了 int 类型,注意将getter 和 setter 方法中的BigDecimal 也改成int,特别注意:将实体与表映射文件中的BigDecimal也改成int 类型;
做好上述工作后,就可以调用Dao文件里的方法访问数据库了
(MyEclipse 2014 prefessional 版本中的Hibernate框架自动生成的Dao 文件里的 save 和 delete 方法需要添加事务处理功能,否则无效,如下图所示)
5.做完上述工作后,就可以新建测试类,进行测试了,完美:
以上是关于Hibernate + Oracle 结合的主要内容,如果未能解决你的问题,请参考以下文章
websphere启动报/WEB-INF/applicationContext-orm- hibernate.xml]: Could not resolve placeholder 'hibe