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.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
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提供对象与表的映射关系
对应哪个表? 什么属性,对应什么字段
src下的xml配置文件提供链接数据库的基本信息
账号 密码 驱动 数据库ip 端口
另一个xml提供对象与表的映射关系
对应哪个表? 什么属性,对应什么字段
以上是关于Hibernate的主要内容,如果未能解决你的问题,请参考以下文章
使用反射在外部JAR / CLASS上调用包含Hibernate事务的方法(Java EE)
Hibernate CriteriaQuery where - ManyToOne 字段
Hibernate + MySQL:如何为数据库和表设置编码 utf-8
hibernate在使用getCurrentSession时提示no session found for current thread