以前都是通过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 方法需要添加事务处理功能,否则无效,如下图所示)

hibernate3如何连接mysql hibernate连接oracle数据库_oracle

 

5.做完上述工作后,就可以新建测试类,进行测试了,完美:

hibernate3如何连接mysql hibernate连接oracle数据库_hibernate3如何连接mysql_02