Hibernate浅谈第一篇

转:http://www.iteye.com/topic/1124184

前言:

关于所有内容只是自己学习时的一些笔记与总结,不一定完全正确,希望不对的地方大家能多喷一喷。

 

话不多说,现在就进入正题,Hibernate浅淡第一篇。

 

什么是Hibernate这里就不多说了,相信我们亲爱的google和baidu比我要说的明白。让我们先搞一个例子上上手,感受一下。例子十分简单,由第三方教程引入。只为让大家能快速试用一下Hibernate。

 

例子创建实现步骤:

 

第一步:首先导入使用Hibernate所必须的最基本的包(如果不知道怎么导入jar包,请关注博客中导入jar包的文章)

hibernate3.jar(核心包)

hibernate/required文件夹下的

|--antlr-2.7.6.jar

|--commons-collections-3.1.jar

|--dom4j-1.6.1.jar

|--javassist- 3.12.0.GA.jar

|--jta-1.1.jar

|--slffj-api-1.6.1.jar和slf4j-nop-1.6.1.jar(网上下载)

|--mysql-connector-java-5.16-bin.jar(mysql数据驱动jar包,oracle的可到网上找)

版本号根据需要可以换,但名字是确定的

第二步:创建数据库,我用的是mysql数据库,这里提供创建数据库与数据表的语句。

create database hibernate;(创建数据库)

use hibernate;(使用创建的数据库)

create table student (id int primary key, name varchar(20), age int ); (创建一张student表)

第三步:创建一个Student 类

说明:创建与数据表同名的类,而且类的属性必须与表中的字段名相同,类型也要相同(如有不明,请参阅其它文档)。这就体现了Hibernate中所谓的对象与关系的映射。也就是有什么样的表,就要有与之对应的类。代码如下:

 

Java代码  收藏代码
  1. <span style="color: #339966; background-color: #ffffff;">   package com.hibernate.model;  
  2.     public class Student {  
  3.         private int id;  
  4.         private int age;  
  5.         private String name;  
  6.         public int getId() {  
  7.             return id;  
  8.         }  
  9.         public void setId(int id) {  
  10.             this.id = id;  
  11.         }  
  12.         public int getAge() {  
  13.             return age;  
  14.         }  
  15.         public void setAge(int age) {  
  16.             this.age = age;  
  17.         }  
  18.         public String getName() {  
  19.             return name;  
  20.         }  
  21.         public void setName(String name) {  
  22.             this.name = name;  
  23.         }  
  24.     }</span>  

 

 第四步:Hibernate配置文件hibernate.cfg.xml的编写。

 

说明:这里我们只给出了运行实例所需的配置信息,具体hibernate.cfg.xml配置文件的解释会在其他文章中做详细解释。一般来说这个文件放在src目录下,照做就行了

 
Java代码  收藏代码
  1. <span style="color: #333333;"><span style="line-height: 26px;"> </span></span><span style="text-align: left;"><?xml version='1.0' encoding='utf-8'?>  
  2. </span><span style="white-space: pre;"> </span><!DOCTYPE hibernate-configuration PUBLIC  
  3.         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  5.   
  6. <hibernate-configuration>  
  7.   
  8.     <session-factory>  
  9.   
  10.        <span style="color: #339966;"> <!-- Database connection settings --></span>  
  11.         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>  
  12.         <property name="connection.url">jdbc:mysql://localhost/hibernate</property>  
  13.         <property name="connection.username">root</property>  
  14.         <property name="connection.password">root</property>  
  15.   
  16.       <span style="color: #339966;">  <!-- JDBC connection pool (use the built-in) -->  
  17.        <!-- <property name="connection.pool_size">1</property> --></span>  
  18.   
  19.     <span style="color: #339966;">    <!-- SQL dialect --></span>  
  20.         <property name="dialect">org.hibernate.dialect.MySQLDialect</property>  
  21.   
  22.       <span style="color: #339966;">  <!-- Enable Hibernate's automatic session context management -->  
  23.        <!--   <property name="current_session_context_class">thread</property> --></span>  
  24.   
  25.         <span style="color: #339966;"><!-- Disable the second-level cache  --></span>  
  26.         <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>  
  27.   
  28.       <span style="color: #339966;">  <!-- Echo all executed SQL to stdout --></span>  
  29.         <property name="show_sql">true</property>  
  30.   
  31.        <span style="color: #339966;"> <!-- Drop and re-create the database schema on startup -->  
  32.       <!--  <property name="hbm2ddl.auto">create</property>  --> </span>  
  33. <span style="white-space: pre;">    </span>  
  34.         <!--对象-关系映射文件的位置 -->  
  35. <span style="white-space: pre;">    </span><mapping resource="com/hibernate/model/Student.hbm.xml"/>  
  36.   
  37.     </session-factory>  
  38.   
  39. </hibernate-configuration>  

 

第五步:编写对象-关系映射文件Student.hbm.xml(文件名的命名类名.hbm.xml)
说明:这里只给出了供运行实例的配置文件内容,具体的内容与解释会在其他文章中介绍。一般来说这个文件的存放位置与其同名类放在同一目录下
Java代码  收藏代码
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC  
  3.         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4.         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  5.   
  6. <hibernate-mapping package="com.bjsxt.hibernate.model">  
  7.     <class name="Student">  
  8.         <id name="id" column="id"></id>  
  9.         <property name="name" column="name"></property>  
  10.         <property name="age" column="age"></property>  
  11.     </class>  
  12.   
  13. </hibernate-mapping>  
 

第六步:编写执行数据库操作的代码

说明:这里只实现了一个向student表添加记录的方法,主要是感受一下Hibernate,所以代码以简单易懂为主。代码如下

 

Java代码  收藏代码
  1. import org.hibernate.Session;  
  2. import org.hibernate.SessionFactory;  
  3. import org.hibernate.cfg.Configuration;  
  4. import com.hibernate.model.Student;  
  5. public class StudentTest {  
  6.     public static void main(String arg[]){  
  7.         Student s=new Student();  
  8.         s.setId(1);  
  9.         s.setName("bobo");  
  10.         s.setAge(10);  
  11.           
  12.         Configuration cfg=new Configuration();  
  13.         SessionFactory sessionFactory=cfg.configure().buildSessionFactory();  
  14.         Session session=sessionFactory.openSession();  
  15.         session.beginTransaction();  
  16.         session.save(s);  
  17.         session.getTransaction().commit();  
  18.         session.close();  
  19.         sessionFactory.close();  
  20.     }  
  21. }  

 

 好了,经过上面的六步,程序实例应该可以成功运行了,看一下数据表里是不是多了一条记录。有了Hibernate,我们无需写sql语句,数据就可以插入到数据库了。

 

结语:

Hibernate浅淡第一篇结束了,里面只是一个很简单的实例,也许很多东西写的不够详细和准确,如果你感觉有用就看看,淡然也可以飘过,一切只为了能够一起进步。谢谢!!当然也欢迎大家多多喷我。

posted on 2012-10-11 21:15  Stephen_init  阅读(140)  评论(0)    收藏  举报