您的位置:首页 > 其它

Hibernate学习笔记(一)----初识Hibernate

2017-03-27 17:35 316 查看
一、环境准备

 
下载hibernate-distribution-3.3.2.GA-dist
  
下载hibernate-annotations-3[1].4.0.GA
二、创建第一个Hibernate程序

    1)新建一个javaproject,导入hibernate需要的jar包:

                      i.     hibernate core
                   ii.     /required
               iii.     slf4j-nop jar(注意要和/required目录下的slf4j-api版本相对应 )
   2)引入MySQL的JDBC驱动,在mysql中建立对应的数据库以及表
a)        create database hibernate;
b)        use hibernate;
create table Student (id int primary key,namevarchar(20), age int);

3)建立hibernate配置文件hibernate.cfg.xml

   在hibernate的文档中有对应的模版,将其复制下来,并修改成如下配置:

    <?xmlversion='1.0'encoding='utf-8'?>
<!DOCTYPEhibernate-configurationPUBLIC
       "-//Hibernate/Hibernate Configuration DTD3.0//EN"
       "http://hibernate.sourceforge.NET/hibernate-configuration-3.0.dtd">
 
<hibernate-configuration>
 
<session-factory>
 
    <!-- Database connection settings -->
    <propertyname="connection.driver_class">
       com.mysql.jdbc.Driver
    </property>
    <propertyname="connection.url">
       jdbc:mysql://localhost/hibernate
    </property>
    <propertyname="connection.username">root</property>
    <propertyname="connection.password">123</property>
 
    <!-- JDBC connection pool (use thebuilt-in) -->
    <!-- <propertyname="connection.pool_size">1</property> -->
 
    <!-- SQL dialect -->
    <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property>
 
    <!-- Enable Hibernate's automaticsession context management -->
    <!-- <propertyname="current_session_context_class">thread</property>-->
 
    <!-- Disable the second-level cache -->
    <propertyname="cache.provider_class">
       org.hibernate.cache.NoCacheProvider
    </property>
 
    <!-- Echo all executed SQL to stdout -->
    <propertyname="show_sql">true</property>
 
    <!-- Drop and re-create the databaseschema on startup -->
    <!-- <propertyname="hbm2ddl.auto">create</property> -->
    <!-- <propertyname="myeclipse.connection.profile"></property> -->
 
    <mappingresource="com/xuhaibin/hibernate/model/Student.hbm.xml"/>
   
</session-factory>
 
</hibernate-configuration>
 
<mapping> 要设置成对应的映射文件

4)建立Student的映射文件student.hbm.xml

参考文档中的示例映射文件,修改成如下内容:

<?xmlversion="1.0"?>
<!DOCTYPEhibernate-mappingPUBLIC
       "-//Hibernate/Hibernate Mapping DTD3.0//EN"
       "http://hibernate.sourceforge.Net/hibernate-mapping-3.0.dtd">
 
<hibernate-mappingpackage="com.xuhaibin.hibernate.model">
    <classname="Student">
        <idname="id"/>
        <propertyname="name"/>
        <propertyname="age"/>
    </class>
</hibernate-mapping>

5)在com.xuhaibin.hibernate.model包下建立相应的Student类,生成get,set方法

6)建立测试类StudentTest内容如下:

[java]
view plain
copy

     import org.hibernate.Session;  
  
import org.hibernate.SessionFactory;  
  
import org.hibernate.cfg.Configuration;  
  
   
  
   
  
import com.xuhaibin.hibernate.model.Student;  
  
   
  
   
  
public class StudentTest {  
  
     public static voidmain(String[] args){  
  
         Student s = new Student();  
  
         s.setId(1);  
  
         s.setName("s1");  
  
         s.setAge(1);  
  
          
  
         Configuration cfg = newConfiguration();  
  
         SessionFactory sf =cfg.configure().buildSessionFactory();  
  
         Session session =sf.openSession();  
  
         session.beginTransaction();  
  
         session.save(s);  
  
         session.getTransaction().commit();  
  
         session.close();  
  
         sf.close();  
  
     }  
  
}  

三、使用annotation建立Teacher类,@Entity注解实体,@id注解主键

package com.xuhaibin.hibernate.model;

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;

}

public String getName() {

return name;

}

public void setName(Stringname) {

this.name = name;

}

public String getTitle() {

return title;

}

public void setTitle(Stringtitle) {

this.title = title;

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: