1: 文件命名:
src: 类路径(**一定要遵循命名规范)
文件的名称固定: hibernate.cfg.xml
2:核心:
xml声明部分: 引入了一个dtd文件:
配置的内容:
必须参数: 连接数据的四大参数:
driver_class
url
username
password
dialect : 方言:
可选参数:
show_sql : 运行的时候, 在控制台上打印sql 语句:
format_sql : 打印sql 的时候, 带有格式:
hbm2ddl.auto : Hibernate是否生成ddl语句:
引入映射文件 :
resource =“Customer.hbm.xml” // 引入文件存在的位置:
案例: user/com/mrzhang/domain/Customer.hbm.xml
整个xml代码如下:
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/Hibernate001
root
root
org.hibernate.dialect.MySQL5Dialect
true
true
create
org.hibernate.connection.C3P0ConnectionProvider
5
20
120
3000
catalog ="" 指定了数据库的名称: 可以省略:
name: 类当中属性的名称:
column: 数据库当中的主键字段: 如果属性的名称和字段相对应, 就省略
length:指定了数据库当中列的长度。 可以不指定。 默认情况是255:
type: 指定数据当中的类型: 使用默认值:
type的值有三种表示形式:
可以使用java当中的类型: java.lang.String
可以指定数据库当中的类型: varchar
可以使用Hibernate自带类型: string
管理主键字段: 主键的生成策略:
name:
column:
length:
type: 以上四个字段和id的一致:
not-null: 字段是否为空: false true
unique: 设置值是否为一: false true :
1: Configuration对象:
Configuration : 配置对象, Hibernate工作通过该对象, 读取配置文件。
configure() ;只能直接读取src 下的 hibernate.cfg.xml 文件, 名称固定
configure(String path); 可以读取指定位置的配置文件。
addResource(“String path”);如果Hibernate的核心配置文件, 是一个Properties文件, 不能自动加载映射。 需要手动加载。
buildSessionFactory();获得一个会话工厂:
2: SessionFactory : 工厂类:
1:作用: a: 获得session: openSession();
b: 不是轻量级的对象, 一个项目只需要一个工厂。 线程安全的对象。
c: SessionFactory 是一个缓存对象, 负责Hibernate当中的二级缓存。
二级缓存, 不能直接使用, 如果需要使用, 需要配置。 在实际的开发过程当中, 已经被Redis数据库取代。
d: 内部维护了一个连接池:
使用步骤:
(1)引入外部数据源的jar包:
(2)Hibernate.cfg.xml当中进行配置:
整个文件代码:
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/Hibernate001
root
root
org.hibernate.dialect.MySQL5Dialect
true
true
create
org.hibernate.connection.C3P0ConnectionProvider
5
20
120
3000
(3)通过控制台的初始化信息可以查询
例子如下:
package com.yidongxueyuan.test;
import java.io.Serializable;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.yidongxueyuan.domain.Customer;
public class HibernateTest01 {
@Test
public void testAdd() throws Exception {
/*
* 1: 第一步: 读取Hibernate的核心配置文件:
* 2:第三步: 获得一个会话工厂:
* 3: 使用工厂获得一个session对象:
*/
//创建一个对象, 用来读取核心的配置文件:
/*
* 对象: 创建配置对象, 并且调用方法的时候, 并没有直接指定读取的配置文件。 默认读取的是类路径下的
* 名称为:hibernate.cfg.xml 的配置文件:
*/
Configuration config = new Configuration().configure();
//获得一个会话工厂:
SessionFactory factory = config.buildSessionFactory();
//3:使用工厂获得一个session对象: 类似之前的connnection :
Session session = factory.openSession();
// 4: 开启事务:
Transaction tx = session.beginTransaction();
//====================中间进行增删改查操作:
//操作实体bean:
Customer cust = new Customer();
cust.setCust_name("军哥");
cust.setCust_phone("18811307278");
Serializable id = session.save(cust);//主键字段:
// 事务的提交:
tx.commit();
//关闭session:
session.close();// close : session对象换回到池子当中。
//关闭SessionFactory:
factory.close();//显示关闭sessionFactory 。
}
}