zoukankan      html  css  js  c++  java
  • 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.做完上述工作后,就可以新建测试类,进行测试了,完美:

  • 相关阅读:
    python列表--查找集合中重复元素的个数
    python3-打印一个进度条
    python3-sys模块
    python3-字符串操作
    python3-深浅复制
    python3-os模块
    接口和抽象类有什么区别
    集合知识
    面向对象的特征有哪些方面
    javadoc时候乱码-编码 GBK 的不可映射字符
  • 原文地址:https://www.cnblogs.com/maxiaoshuai/p/5561713.html
Copyright © 2011-2022 走看看