博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
\hibernate核心配置和映射文件
阅读量:3908 次
发布时间:2019-05-23

本文共 3947 字,大约阅读时间需要 13 分钟。

核心的配置文件:

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

映射文件的详解:

就是上面代码中的这个部分:在这里插入图片描述

<xml dtd 部分> (直接复制即可)

<hibernate-mappding name》(csdnbug,尖括号会报错打不出来): 实体类的全路径名称:

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

转载地址:http://ogmen.baihongyu.com/

你可能感兴趣的文章
【转】Ubuntu 16.04 重置密码(忘记密码)
查看>>
【转】信息奥赛一本通1185:单词排序(OJ题目描述有问题)
查看>>
webclient
查看>>
从百度MP3搜索结果中提取歌曲列表
查看>>
Python Set
查看>>
SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序
查看>>
Java Table Examples
查看>>
Java read file
查看>>
界面主线程,子线程更新主界面控件
查看>>
敲两遍引号键才出现
查看>>
欢迎使用CSDN-markdown编辑器
查看>>
剑指Offer
查看>>
五大常用算法&实例列举
查看>>
网页乱码分析
查看>>
java 线程:sleep join yield | wait notify notifyAll
查看>>
Python 包、模块 概念 from 、import 关键字
查看>>
世界各国的手机号码
查看>>
通配符与正则表达式
查看>>
c++ 与 Java 之 红黑树 哈希表 辨析
查看>>
open GL 、DirectX、open CV、 open Inventor 、cocos2dx、unity3d、3dmax辨析
查看>>