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. FastJson过滤掉不需要的返回字段

    /** * @Author:txp * @Description:过滤掉不需要返回的字段 * @Param: [src, clazz, args]` * @Data: 2017/10/10 9:10 ...

  2. HDU 1002.A + B Problem II-数组模拟-大数相加

    A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  3. POJ 1200 Crazy Search【Hash入门】

    RK法:https://www.cnblogs.com/16crow/p/6879988.html #include<cstdio> #include<string> #inc ...

  4. AndroidManifest.xml文件详解(uses-permission)

    语法(SYNTAX): <uses-permissionandroid:name="string"/> 被包含于(CONTAINED IN): <manifest ...

  5. 【BZOJ 2124】【CodeVS 1283】等差子序列

    http://www.lydsy.com/JudgeOnline/problem.php?id=2124 http://codevs.cn/problem/1283/ 重点是把判断是否存在3个数组成等 ...

  6. hdu 5592 ZYB's Premutation (权值线段树)

    最近在线段树的世界里遨游,什么都能用线段树做,这不又一道权值线段树了么. ZYB's Premutation Time Limit: 2000/1000 MS (Java/Others)    Mem ...

  7. 【推导】计蒜客17119 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F. Trig Function

    题意:给你n,m,让你求cos(nx)的展开式的(cos(x))^m项的系数. 更一般的式子是这样的:. 队友的代码: #include<cstdio> #include<algor ...

  8. 【动态规划】POJ3616-Milking Time

    [题目大意] 奶牛Bessie在0~N时间段产奶.农夫约翰有M个时间段可以挤奶,时间段[a,b]Bessie能挤到的牛奶量v.奶牛产奶后需要休息R小时才能继续下一次产奶,求Bessie最大的挤奶量. ...

  9. codevs 1779 单词的划分

    1779 单词的划分 时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description Problem有一个很长的由小写字母组成字符串.为了便于对 ...

  10. 搭建MySQL的主从、半同步、主主复制架构

    复制其最终目的是让一台服务器的数据和另外的服务器的数据保持同步,已达到数据冗余或者服务的负载均衡.一台主服务器可以连接多台从服务器,并且从服务器也可以反过来作为主服务器.主从服务器可以位于不同的网络拓 ...