简单的Hibernate实例分享

  Hibernate是一个开源的ORM框架,顾名思义,它的核心思想即ORM(Object Relational Mapping,对象关系映射),可以通过对象来操作数据库中的信息,据说开发者一开始是不太熟悉数据库SQL语句的,这也造就了hibernate的强大之处,它不强求开发者熟悉SQL语句也可以操作数据库,hibernate可以自动生成SQL语句,自动执行。

  利用hibernate可以让开发者完全使用面想对象思维来操作数据库,所以接下来的演示不会有一句SQL语句,如果有的话,请当我这句话没说!

  本文使用hibernate实现了简单的对一个person数据表的基本增删改查操作。

简单的Hibernate实例分享

准备工作

环境:win7+eclipse

工具包:hibernate包,可前往下载,本例中使用的是4版本;

数据库连接驱动包,本例中使用的是mysql的

  

程序结构图示

简单的Hibernate实例分享

pojo层实体类

package demo.pojo; public class Person { private Integer id; private String name; private String gender; private Integer age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Person [id=" + id + ",, gender=" + gender + ", age=" + age + "]"; } }

  

核心配置文件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>
        <!-- 以下四行分别为:数据库驱动类、Drivermanager获取连接的参数URL、用户名、密码  -->
        <property>com.mysql.jdbc.Driver</property>
        <property>jdbc:mysql://127.0.0.1/web?characterEcoding=utf-8</property>
        <property>root</property>
        <property>123456</property>
        <!-- 设置方言,hibernate会根据数据库的类型相应生成SQL语句 -->
        <property>org.hibernate.dialect.MySQLDialect</property>
       
        <!-- 控制台显示生成的sql语句,默认为false -->
        <property>true</property>
        <!-- 映射配置源文件的位置 -->
        <mapping resource="demo/pojo/Person.hbm.xml"/>
    </session-factory>
   
</hibernate-configuration>

映射文件Person.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>
    <!-- name是实体类全名,table为数据表名 -->
    <class table="Person">
        <id column="id">
            <!-- 主键生成方式,native是让hibernate自动识别 -->
            <generator></generator>
        </id>
        <!--
        注意点:
        0.name值为实体类中属性名,column为数据表中字段名;
        1.当实体类中属性名与对应数据表字段名相同时,后面的column可以省略,hibernate会自动匹配,例如下面age ;
        2.反之当实体类中属性名与对应数据表字段名不相同时,两项都要写上,例如下面gender和sex
        -->
        <property column="name"></property>
        <property column="sex"></property>
        <property></property>
    </class>
</hibernate-mapping>

Session工厂类

package demo.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/335890ed46adf7b6222c0716f6be8cc7.html