Java笔记8:Hibernate连接Oracle

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

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  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

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. public class Student  
  2. {  
  3.     private int student_id;  
  4.     private String student_name;  
  5.     private int student_age;  
  6.   
  7.     public int getStudent_id()  
  8.     {  
  9.         return student_id;  
  10.     }  
  11.     public String getStudent_name()  
  12.     {  
  13.         return student_name;  
  14.     }  
  15.     public int getStudent_age()  
  16.     {  
  17.         return student_age;  
  18.     }  
  19.     public void setStudent_id(int id)  
  20.     {  
  21.         this.student_id = id;  
  22.     }  
  23.     public void setStudent_name(String name)  
  24.     {  
  25.         this.student_name = name;  
  26.     }  
  27.     public void setStudent_age(int age)  
  28.     {  
  29.         this.student_age = age;  
  30.     }  
  31. }  

 

 

3)Student.hbm.xml

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  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

 

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

 

 

7 验证

1)运行Test.java,结果为

Hibernate: select student_sequence.nextvalfrom dual

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

 

2)从Oracle数据库中查询

posted @ 2017-04-19 11:17  爱你爱自己  阅读(247)  评论(0编辑  收藏  举报