1下载hibernate-3.6.0 Final.zip到任意目录,解压缩后得到hibernate目录

2下载slf4j-1.7.13.zip到任意目录,解压缩后得到slf4j-1.7.13

3操作数据库

sqlplus system/Oracle

创建表

create table Student

(
 Student_ID  number(6) NOT NULLPRIMARY KEY,
 Student_Name varchar2(10) NOT NULL,
 Student_Age number(2) NOT NULL
);

创建序列号用于给表Student的Student_ID赋值

CREATE SEQUENCEstudent_sequence 
INCREMENT BY 1
START WITH 1000
NOMAXVALUE
NOCYCLE
CACHE 10;

4新建一个名为Hiber的工程

5添加包

添加hibernate\jar中的所有包

添加slf4j-1.7.13中的slf4j-nop-1.7.13.jar

添加oracle的jdbc驱动程序ojdbc6.jar

添加完成后

6 添加两个配置文件和两个类

(1)hibernate.cfg.xml

  1. <!DOCTYPE hibernate-configuration PUBLIC
  2. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  4. <hibernate-configuration>
  5. <session-factory>
  6. <!--程序执行的时候是否显示真正的sql语句-->
  7. <property name="show_sql">true</property>
  8. <!--使用的SQL对应的“方言”,此处是Oracle11的“方言”-->
  9. <property name="dialect">org.hibernate.dialect.OracleDialect
  10. </property>
  11. <!--连接数据库的Driver-->
  12. <property name="connection.driver_class">
  13. oracle.jdbc.driver.OracleDriver
  14. </property>
  15. <!--数据库连接url-->
  16. <property name="connection.url">
  17. jdbc:oracle:thin:@localhost:1521:orcl
  18. </property>
  19. <!--用户名-->
  20. <property name="connection.username">system</property>
  21. <!--密码-->
  22. <property name="connection.password">oracle</property>
  23. <mapping resource="Student.hbm.xml"/>
  24. </session-factory>
  25. </hibernate-configuration>

(2)Student.Java

  1. public class Student
  2. {
  3. private int student_id;
  4. private String student_name;
  5. private int student_age;
  6. public int getStudent_id()
  7. {
  8. return student_id;
  9. }
  10. public String getStudent_name()
  11. {
  12. return student_name;
  13. }
  14. public int getStudent_age()
  15. {
  16. return student_age;
  17. }
  18. public void setStudent_id(int id)
  19. {
  20. this.student_id = id;
  21. }
  22. public void setStudent_name(String name)
  23. {
  24. this.student_name = name;
  25. }
  26. public void setStudent_age(int age)
  27. {
  28. this.student_age = age;
  29. }
  30. }

(3)Student.hbm.xml

  1. <?xml version="1.0"encoding="utf-8"?>
  2. <!DOCTYPEhibernate-mapping
  3. PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping>
  6. <classname="Student"table="Student">
  7. <idname="student_id"column="student_id"type="java.lang.Integer">
  8. <generatorclass="native">
  9. <paramname="sequence">student_sequence</param>
  10. </generator>
  11. </id>
  12. <propertyname="student_name"column="Student_Name"
  13. type="java.lang.String"/>
  14. <propertyname="student_age"column="Student_Age"
  15. type="java.lang.Integer"/>
  16. </class>
  17. </hibernate-mapping>

(4)Test.java

  1. importorg.hibernate.*;
  2. import org.hibernate.cfg.*;
  3. public class Test
  4. {
  5. public static voidmain(String[]args)
  6. {
  7. try
  8. {
  9. //通过Configuration获得一个SessionFactory对象
  10. SessionFactory sf = new Configuration().configure().buildSessionFactory();
  11. //打开一个Session
  12. Session session= sf.openSession();
  13. //开始一个事务
  14. Transaction tx =session.beginTransaction();
  15. //创建一个Student对象
  16. Student stu =new Student();
  17. //通过Student的setter方法改变它的属性
  18. //注意student_id不用我们设置
  19. stu.setStudent_name("zhangsan");
  20. stu.setStudent_age(18);
  21. //通过session的save()方法将Student对象保存到数据库中
  22. session.save(stu);
  23. //提交事务
  24. tx.commit();
  25. //关闭会话
  26. session.close();
  27. }
  28. catch(Exception e)
  29. {
  30. e.printStackTrace();
  31. }
  32. }
  33. }

7 验证

(1)运行Test.java,结果为

Hibernate: select student_sequence.nextvalfrom dual

Hibernate: insert into Student(Student_Name, Student_Age, student_id) values (?, ?, ?)

(2)从Oracle数据库中查询

Java笔记8:Hibernate连接Oracle的更多相关文章

  1. Java JDBC Thin Driver 连接 Oracle 三种方法说明(转载)

    一.JDBC 连接Oracle 说明 JDBC 的应用连接Oracle 遇到问题,错误如下: ORA-12505,TNS:listener does not currently know of SID ...

  2. 【JDBC】java程序通过jdbc连接oracle数据库方法

    版权声明:本文为博主原创文章(原文:blog.csdn.net/clark_xu 徐长亮的专栏).未经博主同意不得转载. https://blog.csdn.net/u011538954/articl ...

  3. hibernate 连接 oracle数据库

    前言:以下所有的操作都是基于你已经成功安装了oracle数据库并且java的开发环境正常的情况下进行的. 如果没有完善请先配置基础环境. 第一步:配置需要的环境(下载并导入需要的包). 我的百度云盘里 ...

  4. hibernate连接Oracle rac

    连接方式与普通的数据库不一样.connection.url 中使用了LOAD-BALANCE = yes 要不然会报错 <hibernate-configuration> <sess ...

  5. hibernate连接oracle数据库

    前言:以下所有的操作都是基于你已经成功安装了oracle数据库并且java的开发环境正常的情况下进行的. 如果没有完善请先配置基础环境. 第一步:配置需要的环境(下载并导入需要的包). 下载链接:ht ...

  6. 使用Hibernate连接Oracle 无法识别生成的SQL问题

    问题: 在JAVA工程中,数据库使用的是OracleXE(Oracle10g Express Edition). 使用hibernate.reveng.xml创建了实体类及其DAO类,如: tt.my ...

  7. hibernate连接oracle

    <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC           & ...

  8. Java使用数据库连接池连接Oracle数据库

    第一步:导入tomcat\lib 下的一个tomcat-dbcp.jar包第二步:在web\META-INF下新建一个context.xml文件,文件内容如下: <?xml version=&q ...

  9. hibernate 连接oracle数据库的配置 (参考)

    <?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC          &qu ...

随机推荐

  1. 部署openstack(N)版本-本地yum源(1)

    部署本地openstack yum源,原因主要是我想安装老版本,N版(newton),部署本地yum源,安装速度可以更快. 1. 使用apache提供yum服务 yum install -y http ...

  2. caffe-安装anaconda后重新编译caffe报错

    ks@ks-go:~/caffe-master$ make -j16 CXX/LD -o .build_release/tools/convert_imageset.bin CXX/LD -o .bu ...

  3. 洛谷P2127 序列排序 [贪心]

    题目传送门 题目描述 小C有一个N个数的整数序列,这个序列的中的数两两不同.小C每次可以交换序列中的任意两个数,代价为这两个数之和.小C希望将整个序列升序排序,问小C需要的最小代价是多少? 输入输出格 ...

  4. 洛谷P3197 HNOI2008 越狱

    题目传送门 实际上昨天大鸡哥已经讲过这题了,结果没记住,今天一道相似的题就挂了......吃一堑长一智啊. 思路大致是这样:如果直接算发生越狱的情况会比较复杂,所以可以用间接法,用安排的总方案-不会发 ...

  5. JZYZOJ 1385 拉灯游戏 状态压缩 搜索

    http://172.20.6.3/Problem_Show.asp?id=1385   刚开始想的时候一直以为同一排不同的拉灯顺序对结果是有影响的,手推了好多遍才发现拉灯结果只和拉的灯有关,这也要打 ...

  6. [P3806] Divide and Conquer on Tree

    Link: P3806 传送门 Solution: 询问树上是否存在两点间的距离为$k$,共有$m$次询问($m\le 100,k\le 1e7$) 预处理出所有距离的可能性再$O(1)$出解的复杂度 ...

  7. BZOJ 4031: [HEOI2015]小Z的房间 高斯消元 MartixTree定理 辗转相除法

    4031: [HEOI2015]小Z的房间 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4031 Description 你突然有了一个 ...

  8. 8VC Venture Cup 2016 - Elimination Round A. Robot Sequence 暴力

    A. Robot Sequence 题目连接: http://www.codeforces.com/contest/626/problem/A Description Calvin the robot ...

  9. KNN算法实现手写数字

    from numpy import * import operator from os import listdir def classify0(inX, dataSet, labels, k): d ...

  10. Linux 内核中的 GCC 特性

    https://www.ibm.com/developerworks/cn/linux/l-gcc-hacks/ GCC 和 Linux 是出色的组合.尽管它们是独立的软件,但是 Linux 完全依靠 ...