1.初识hibernate

简介

hibernate是一种Object-relationship-mapping的框架。

hibernate可以让数据库操作以面向对象的方式进行。

hibernate屏蔽不同数据库sql语句之间的区别,面向接口编程。

配置文件

hibernate主配置文件配置数据库参数,名称为hibernate.cfg.xml。放在src根目录。

hibernate对象关系映射文件配置对象和表的映射规则,名称为ModelName.hbm.xml。放在对应Model包下。

hibernate库

使用eclipse的user library功能添加hibernate库,包括官方给出的lib包中的依赖包已经required文件夹下的包。另外需单独下载slf4j-nop-version.jar,并添加到library中。

数据库驱动如mysql-connector-java-5.1.22-bin.jar。

hibernate初步应用

hibernate为访问数据库提供便捷的接口,使得我不需要写sql语句就可以将“对象”插入到“表”中。

hibernate处于数据库访问层即dao层,它是dao的一实现方式。

hibernate的访问接口为:

        Configuration configuration = new Configuration().configure();
        SessionFactory sessionFactory = configuration.buildSessionFactory();
        Session session = sessionFactory.openSession();
        
        session.beginTransaction();
        session.save(对象);
        session.getTransaction().commit();

使用hibernate向mysql数据库中插入一条记录

mysql中建数据库hibernate,表student(id int primary key,name varchar(20),age int).

建立java_project,导入hibernate库和驱动。

建立hibernate.cfg.xml,从官方文档拷贝修改参数:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/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>
    
        <!--SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
        
        <!--Disable the second-level cache -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
        <!--Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        
        <mapping resource="zhx1529/model/Student.hbm.xml" />
    </session-factory>
</hibernate-configuration>

建立Student类,它是一个bean,3个属性和数据库中表student一一对应,放在我的包中:

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

 

写O-R-Mapping文件,Student.hbm.xml。从官方文件拷贝代码并修改。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="zhx1529.model">
 <class name="Student">
        <id name="id"></id>
        <property name="age"/>
        <property name="name"/>
    </class>
</hibernate-mapping>

写测试类,在main方法中写如下:

        Student student = new Student();
        student.setId(3);
        student.setAge(23);
        student.setName("honbaa");
                
        Configuration configuration = new Configuration().configure();
        SessionFactory sessionFactory = configuration.buildSessionFactory();
        Session session = sessionFactory.openSession();
        
        session.beginTransaction();
        session.save(student);
        session.getTransaction().commit();

运行,查询数据库,已经将“对象”插入为一条记录。

posted @ 2013-09-16 20:57  FishBird  阅读(197)  评论(0编辑  收藏  举报