\hibernate核心配置和映射文件

核心的配置文件:

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
		
		
		
	
		
	

映射文件的详解:

就是上面代码中的这个部分:\hibernate核心配置和映射文件_第1张图片

(直接复制即可)

table: 对应数据库当中的表: 如果table 和 表名和 实体类的名称相同, table 可以省略。
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 :



        

   
	
		
		
		    
			
		
		
		
		
		
		
		
		
		
	
	
        

API详解:

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 。
	
	}
}

你可能感兴趣的:(java)