Hibernate基础
一、Hibernate简单介绍
- hibernate框架应用在javaee三层结构中 dao层框架
- 在dao层里面做对数据库crud操作,使用hibernate实现crud操作,hibernate底层代码就是jdbc,hibernate对jdbc进行封装,使用hibernate好处,不需要写复杂jdbc代码了,
不需要写sql语句实现 - hibernate开源的轻量级的框架
- hibernate使用orm思想对数据库进行crud操作
- oem思想
(1)让实体类和数据库表进行一一对应关系
让实体类首先和数据库表对应
让实体类属性 和 表里面字段对应
(2)不需要直接操作数据库表,而操作表对应实体类对象
二、Hibernate入门
idea创建纯hibernate项目
导入mysql的jdbc驱动包
给项目建立如下表结构
配置hibernate核心配置类
(1)核心配置文件格式xml,但是核心配置文件名称和位置固定的
- 位置:必须src下面
- 名称:必须hibernate.cfg.xml
(2)引入dtd约束
(3)hibernate操作过程中,只会加载核心配置文件,其他配置文件不会加载
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--第一部分:配置数据库表信息 必须的-->
<!--idea创建hibernate项目时,需要再单独加入mysql的JDBC驱动包-->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///study_hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">123456789</property>
<!--第二部分:配置hibernate信息 可选的-->
<!--输出底层sql语句-->
<property name="hibernate.show_sql">true</property>
<!--输出底层sql语句格式-->
<property name="hibernate.format_sql">true</property>
<!--
hibernate帮创建表,需要配置之后
update:如果已经有表,更新,如果没有,创建
-->
<property name="hibernate.hbm2ddl.auto">update</property>
<!--
配置数据库方言
在mysql里面实现分页 关键字limit,只能在mysql里面
在oracle数据库,实现分页rownum
让hibernate框架识别不同数据库的自己特有的语句
-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!--第三部分:把映射文件放在核心配置文件中-->
<mapping resource="pojo/User.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
创建实体类
package pojo;
/**
*
*/
public class User {
private int id;
private String username;
private String password;
private Integer age;
private String address;
public User() {
}
public User(int id, String username, String password, Integer age, String address) {
this.id = id;
this.username = username;
this.password = password;
this.age = age;
this.address = address;
}
public int getId() {
return id;
}
public void setId(int id) {