现在的位置: 首页 > 综合 > 正文

hibernate(一)

2012年01月05日 ⁄ 综合 ⁄ 共 2927字 ⁄ 字号 评论关闭

  一、什么是hibernate?

  hibernate是开源的、用于封装数据访问层的组建,我们称之为数据访问层框架(或持久层框架)

  之前我们通过JDBC/SQL语句从数据库中访问/操作数据,而hibernate就是封装了这写操作,专门用于数据访问层的组件技术

  二、需要的jar包

  Hibernate: hibernate3.jar

        antlr-2.7.6.jar

        commons-collections-3.1.jar

        dom4j-1.6.1.jar

        javassist-3.9.0.GA.jar

        jta-1.1.jar

        slf4j-api-1.5.8.jar

  Slf4j:    slf4j-nop-1.5.8.jar

  JDBC:   mysql-connector-java-5.1.16-bin.jar

  三、创建数据库并建表

create database hibernate;
create table student (id int primary key,name varchar(20),age int);

  四、准备hibernate的配置文件

  该文件用于存储数据库的链接信息及hibernate的配置信息,命名为hibernate.cfg.xml

<?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>

        <!-- 数据库连接信息 -->
        <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">******</property>

        <!-- JDBC 链接池 -->
        <property name="connection.pool_size">1</property>

        <!-- SQL 方言 -->
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>

        <!-- 二级缓存  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- 是否在控制台显示SQL语句 -->
        <property name="show_sql">true</property>

        <!-- hibernate maping to ddl 是否让hibernate自动生成建表语句 -->
        <property name="hbm2ddl.auto">update</property>

        
      <!--关联印射文件 -->
     <mapping resource="org/hibernate/tutorial/domain/Event.hbm.xml"/> </session-factory> </hibernate-configuration>

  五、建立实体类Student

package com.xxx.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;
    }

}

  建立Student的印射文件:student.hbm.xml

<?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 name="com.xxx.model.Student" table="student">
        <id name="id"></id>
        <property name="name"></property>
        <property name="age"></property>
    </class>

</hibernate-mapping>

  修改hibernate.cfg.xml中的关联印射文件

<mapping resource="com/xxx/model/Student.hbm.xml"/>

 

  然后就可以了,创建一个测试类StudentTest

package com.xxx.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.liguobing.model.Student;

public class StudentTest {

    public static void main(String[] args) {
        Student s = new Student();
        s.setId(1);
        s.setName("SSS");
        s.setAge(40);

        Configuration cfg = new Configuration();
        SessionFactory sf = cfg.configure().buildSessionFactory();
        Session session = sf.openSession();
        Transaction t = session.getTransaction();
        t.begin();
        session.save(s);
        t.commit();
        session.close();

    }

}

  运行一下,就可以在控制台看到

  数据库看一下

 

  

  

抱歉!评论已关闭.