1、hibernate是什么
框架是什么:
1、框架是用来提高开发效率的
2、封装好了一些功能,我们需要使用这些功能时,调用即可,不需要再手动实现
3、框架可以理解为一个半成品得项目,只要懂得如何驾驭这些功能即可
2、hibernate框架是什么,dao层框架
3、hibernate的好处
操作数据库的时候,可以以面向对象的方式来完成,不需要书写sql语句(hibernate十款orm框架)
ORM:利用描述对象和数据库表之间映射的元数据,自动把java应用程序中的对象,持久化到关系型数据库的表中。
4、orm分四级
1、dbutils属于1级
2、mybatis数据2级
4、hibernate数据4级:完全面向对象操作数据库
3、hibernate框架的构建
导包——创建数据库,准备表——书写orm元数据(对象与表的映射配置文件)——书写主配置文件——书写代码测试导包:
创建表:
书写orm元数据:①导入约束②实体③orm元数据
①导入约束
②实体③orm元数据
配置ORM元数据
<?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"> ???<!-- 配置表与实体对象的关系 --> ???<!-- package属性:填写一个包名,在元素内部凡是需要书写完整类名的属性,可以直接输入类名 --><hibernate-mapping package="hibernate_day01.domain"> ???<!-- ????class元素:配置实体与表的对应关系 ???????name:完整类名 ???????table:数据库表名 ?????--> ???<class name="Customer" table="cst_customer"> ???????<!-- ????????????id元素:配置主键映射的属性 ???????????name:填写主键对应属性名 ???????????column:填下表中的主键列名 ????????--> ???????<id name="cust_id" column="cust_id"> ???????????<!-- generator:主键生成策略 --> ???????????<generator ></generator> ???????</id> ???????<!-- property元素:除id以外的普通属性映射 ???????????name:填写属性名 ???????????column:填写列名,默认是name的属性值 ???????????not-null:配置该属性是否不能为空,默认值为false ???????????length:配置数据库中列的长度,默认值:使用数据库类型的最大长度 ????????--> ???????<property name="cust_name" column="cust_name"></property> ???????<property name="cust_source" column="cust_source"></property> ???????<property name="cust_industry" column="cust_industry"></property> ???????<property name="cust_level" column="cust_level"></property> ???????<property name="cust_phone" column="cust_phone"></property> ???????<property name="cust_mobile" column="cust_mobile"></property> ???</class></hibernate-mapping>
36
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE hibernate-mapping PUBLIC
3
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
5
<!-- 配置表与实体对象的关系 -->
6
<!-- package属性:填写一个包名,在元素内部凡是需要书写完整类名的属性,可以直接输入类名 -->
7
<hibernate-mapping package="hibernate_day01.domain">
8
<!--
9
class元素:配置实体与表的对应关系
10
name:完整类名
11
table:数据库表名
12
-->
13
<class name="Customer" table="cst_customer">
14
<!--
15
id元素:配置主键映射的属性
16
name:填写主键对应属性名
17
column:填下表中的主键列名
18
-->
19
<id name="cust_id" column="cust_id">
20
<!-- generator:主键生成策略 -->
21
<generator ></generator>
22
</id>
23
<!-- property元素:除id以外的普通属性映射
24
name:填写属性名
25
column:填写列名,默认是name的属性值
26
not-null:配置该属性是否不能为空,默认值为false
27
length:配置数据库中列的长度,默认值:使用数据库类型的最大长度
28
-->
29
<property name="cust_name" column="cust_name"></property>
30
<property name="cust_source" column="cust_source"></property>
31
<property name="cust_industry" column="cust_industry"></property>
32
<property name="cust_level" column="cust_level"></property>
33
<property name="cust_phone" column="cust_phone"></property>
34
<property name="cust_mobile" column="cust_mobile"></property>
35
</class>
36
</hibernate-mapping>