Hibernate的第一个程序

在学Hibernate,它的第一个程序:讲一个实例化的对象直接写入数据库中;


首先准备好环境,jdk1.7,myeclipse 8.5,mysql,等,其中下载好hibernate的包:

下载地址:http://sourceforge.net/projects/hibernate/files/?source=navbar 包括了hibernate开发的各种包。


1、创建普通的java项目
创建user library(window->preferences->java->build path->User Libraries),加入hibernate\lib下的所有jar包以及hibernate3.jar,还有jdbc驱动,以后添加hibernate所需的jar包只需添加这个lib即可。

在这个程序中需要导入的包有:

F:\hibernate\hibernate-distribution-3.3.2.GA\lib\required下面的全部lib包;F:\hibernate\hibernate-distribution-3.3.2.GA的hibernate3.jar包;F:\hibernate\slf4j-1.5.8的slf4j-nop-1.5.8.jar包,就可以了。

2.将数据库驱动包通过build path -->add external archives导入到工程里面。

3.在src下创建hibernate配置文件,hibernate.cfg.xml 参考F:\hibernate\hibernate-distribution-    3.3.2.GA\documentation\manual\zh-CN\html_single\index.html;

<?xml version='1.0' encoding='utf-8'?>

<!DOCTYPE hibernate-configuration PUBLIC

       "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

       "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">


<hibernate-configuration>


   <session-factory>


       <!-- Database connection settings -->

       <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

       <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>

       <property name="connection.username">root</property>

       <property name="connection.password">root</property>


       <!-- JDBC connection pool (use the built-in) -->

       <!-- <property name="connection.pool_size">1</property>   -->


       <!-- SQL dialect -->

       <property name="dialect">org.hibernate.dialect.MySQLDialect</property>


       <!-- Enable Hibernate's automatic session context management -->

       <!-- <property name="current_session_context_class">thread</property> -->


       <!-- Disable the second-level cache  -->

       <!-- <property name="cache.provider_class">org.hibernate.first.model.Student</property> -->


       <!-- Echo all executed SQL to stdout -->

       <property name="show_sql">true</property>


       <!-- Drop and re-create the database schema on startup -->

       <!-- <property name="hbm2ddl.auto">update</property> -->


       <mapping resource="org/hibernate/first/model/Student.hbm.xml"/>


   </session-factory>


</hibernate-configuration>


4.定义实体类:

package org.hibernate.first.model;


public class Student {

private int id;

private String name;

private int age;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}


5、定义User对象的映射文件User.hbm.xml,最好放在User类的包里
内容如下:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

<!-- 默认表明与类名一致,可以通过设置class的table属性来设置表明 -->
<class name="com.hk.hibernate.User">
  <!--主键,自动生成唯一值,必须放在最前面 -->
  <id name="id">
   <generator class="uuid"/>
  </id>
  <property name="name"/>
  <property name="age"/>
  <property name="birth"/>
</class>

</hibernate-mapping>

6、将映射文件User.hbm.xml加入到hibernate.cfg.xml中
  在hibernate.cfg.xml中</session-factory>前加入
  <!-- 加入User.hbm.xml,注意路径 -->
  <mapping resource="com/hk/hibernate/User.hbm.xml"/>(注意,这里是“/”,不是“.”)


7、创建数据库hibernate和表:tb_student;

8、编写测试类:

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

import org.hibernate.first.model.Student;



public class TestStudent {


/**

* @param args

* 测试第一个Hibernate的程序

*/

public static void main(String[] args) {

Student s = new Student();

s.setId(1);

s.setName("jim");

s.setAge(20);

Configuration cfg = new Configuration();

SessionFactory sessionFactory = cfg.configure().buildSessionFactory();

Session session = sessionFactory.openSession();

session.beginTransaction();

session.save(s);

session.getTransaction().commit();

session.close();

sessionFactory.close();

}


}

9、大功告成!


2013-8-9 日,增加Annotation的方法写第一条程序:


需要增加导入的包是:

程序跟上面不同的地方是:

Teacher.java

import javax.persistence.Entity;

import javax.persistence.Id;


@Entity    //表明是一个实体类

public class Teacher {

private int id;

private String name;

private String title;

@Id   //主键

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

******省略其他属性的Setter和Getter方法。******

TestTeacher.java中定义Configuration对象就不能像用xml文件一样,应如下:

Configuration cfg = new AnnotationConfiguration();

其他不变


hibernate.cfg.xml

增加一句:

<mapping class="org.hibernate.first.model.Teacher"/>注意:间隔是 点


然后,完成另一种方式的一个helloworld程序。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章