Hibernate

Posted lspa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate相关的知识,希望对你有一定的参考价值。

使用JDBC做数据库相关功能开发会做很多重复性的工作,比如创建连接,关闭连接,把字段逐一映射到属性中。 Hibernate把这一切都封装起来了,使得数据库访问变得轻松而简单,代码也更加容易维护

1.创建数据库,插入表

2.创建project导入hibernate所需的包,如有需要可以留言

3.创建类,属性和表的内容对应,并有get,set方法

4.配置xml文件

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping package="创建类的包名">
    <class name="类名" table="表名">
        <id name="id" column="id">表示属性id,映射表里的字段id
            <generator class="native">意味着id的自增长方式采用数据库的本地方式
            </generator>
        </id>
        <property name="name" />只写了属性name,没有通过column="name" 显式的指定字段,那么字段的名字也是name.
        <property name="price" />
    </class>
     
</hibernate-mapping>
 
5.在src下创建配置的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/数据库名称?characterEncoding=UTF-8</property>
        <property name="connection.username">帐号</property>
        <property name="connection.password">密码</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>告诉hibernate用mysql的语法
        <property name="current_session_context_class">thread</property>这是Hibernate事务管理方式,即每个线程一个事务
        <property name="show_sql">true</property>这表示是否在控制台显示执行的sql语句
        <property name="hbm2ddl.auto">update</property>这表示是否会自动更新数据库的表结构,有这句话,其实是不需要创建表的,因为Hibernate会自动去创建表结构
        <mapping resource="你上一个xml所在的位置" />这表示Hibernate会去识别实体类
    </session-factory>
 
</hibernate-configuration>
 
6.测试类
 
创建一个对象,并通过hibernate把这个对象,插入到数据库中

hibernate的基本步骤是:
1. 获取SessionFactory 
2. 通过SessionFactory 获取一个Session
3. 在Session基础上开启一个事务
4. 通过调用Session的save方法把对象保存到数据库
5. 提交事务
6. 关闭Session
7. 关闭SessionFactory
 
    SessionFactory sf = new Configuration().configure().buildSessionFactory();
 
        Session s = sf.openSession();
        s.beginTransaction();
 
        类名 p = new 类();
        p.setName("插入数据");
        p.setPrice(插入数据);
        s.save(p);
         
        s.getTransaction().commit();
        s.close();
        sf.close();
 
原理:
应用程序通过Hibernate把 一个 对象插入到数据库的表中
src下的xml配置文件提供链接数据库的基本信息
账号 密码 驱动 数据库ip 端口
另一个xml提供对象与表的映射关系
对应哪个表? 什么属性,对应什么字段













以上是关于Hibernate的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate的HQL多表查询

使用反射在外部JAR / CLASS上调用包含Hibernate事务的方法(Java EE)

Hibernate CriteriaQuery where - ManyToOne 字段

Hibernate + MySQL:如何为数据库和表设置编码 utf-8

hibernate在使用getCurrentSession时提示no session found for current thread

Java类型相互转换byte[]类型,blob类型