Hibernate(二):Hibernate的配置及其元素说明
来源:互联网 发布:淘宝官方怎么提成 编辑:程序博客网 时间:2024/06/16 00:09
一,Hibernate的配置文件:
1. Hibernate通过读取默认的XML配置文hibernate.cfg.xml加载数据库的配置信息,该配置文件默认放在项目的classpath的根目录下
代码举例:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 数据库驱动 --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><!-- 数据库连接的URL --><property name="connection.url">jdbc:mysql://localhost:3306/sys</property><!-- 数据库连接用户名 --><property name="connection.username">root</property><!-- 数据库连接密码 --><property name="connection.password"></property><!-- Hibernate方言 --><property name="dialect">org.hibernate.dialect.MySQLDialect</property><!-- 打印SQL语句 --><property name="show_sql">true</property><!-- 映射文件 --><mapping resource="com/mr/uer/user.hbm.xml"/> </session-factory> </hibernate-configuration>
2.<property>元素常用的配置属性:
属性说明属性说明 connection.driver_class连接数据库的驱动dialectl连接数据库使用的方言connection.urll连接数据库的URL地址show_sql 是否在控制台打印sql语句connection.usernameconnection.passwors连接数据库的用户名
连接数据库的密码format.sql
hbm2ddl.auto是否格式化sql语句
是否自动生成数据库表一般开发中会将show_sql设置为true,以便在控制台打印自动生成的sql语句,以方便程序的调试
二,编写持久化类
1.持久化类是Hibernate操作的对象,也就是通过对象-关系映射ORM后数据库表所映射的实体类,用来描述数据库中表的结构信息,。持久化类中的属性应该与数据库表中的字段名相匹配
符合最基本的JavaBean的编程规范,不依赖于任何借口和继承任何类
2.持久化类有四条编程规则:
- 实现一个默认的构造函数:默认的无参构造函数,以便Hibernate通过Constructor.newInstance()实例化持久类
- 提供一个标识属性(可选):映射的是数据库表中的主键字段
- 使用非final类(可选):如果使用了final类,Hibernate就不能童年过代理来延迟关联加载,这会影响开发人员的性能优化的选择
- 为属性声明访问器(可选):持久化类的属性不能声明为public,最好以private的set和get方法对属性进行持久化
package com.mr.uer;public class User { private Integer id; private String name; private String password; public void setId(Integer id) { this.id = id; } public void setName(String name) { this.name = name; } public void setPassword(String password) { this.password = password; } public Integer getId() { return id; } public String getName() { return name; } public String getPassword() { return password; }}
三,Hibernate映射
1.映射文件的基础
- 对象和关系数据库之间的映射通常使用XML文档来实现。这个文档要被设计成易读,并且可以手工修改。
- 映射文件的命名规则为*.hbm.xml
- 映射文件是按照持久化类定义的,而不是数据表的定义
2.元素:
(1)<DOCTYPE>: 在所有的Hibernate的映射文件上必须有这个元素,用来获取DTD文件
(2)<hibernate-mapping>:是映射文件中其他元素的根元素。这个元素包含一些可选的属性。例如
- shcema:该文件映射所在数据库的schema名称
- package:一个包的前缀,如果在<class>中没有指定全限定的类名,就将使用<package>属性定义的包前缀作为包名
(3)<class>元素:主要用于指定持久化类和映射的数据库表名。
<class>元素的属性:
- name属性需要指定持久化类的全限定的类名;
- table属性就是持久化类所映射的数据库表名
<class>元素包含元素:
- <id>:用于持久化类的唯一标识与数据库表的主键字段的映射
- <property>:用于持久类的其他属性和数据库表中非主键字段的映射,配置属性如下表:
注意:如果在映射文件中没有配置colum属性和type属性,Hibernate会默认使用持久化类中属性名称和属性类型匹配数据表中的字段
代码示例:
三,主键策略
在映射文件的<class>元素下有一个<id>元素,<id》元素有一个子元素:<generator>,是一个Java类的名字,用来持久化类的实例生成唯一的标识映射数据库中的主键字段,在配置文件中通过设置<generator>元素的属性设置Hibernate的主键生成策略
属性名称说明increment 用于为Long,Short或者Int类型生成唯一标识,在集群下不适用identity由底层数据生成主键,前提是底层数据库支持自增字段类型sequence根据底层数据库的序列生成主键,前提是底层数据库支持序列hilo根据高/低算法,把特定表的字段作为高位值来源,默认情况下选择hibernate_unique_key的next_hi字段native根据底层数据库对自动生成标识符的的支持能力选择identity,sequece,hiloassigened 由程序负责主键的生成,持久化的类的唯一标识不能声明为private类型select通过数据库触发器生成主键foreign使用另一个相关联的对象的标识符,通常和<one-to-one>使用
- Hibernate(二):Hibernate的配置及其元素说明
- Hibernate入门(二)配置元素学习
- hibernate的配置说明
- Hibernate的概念及其配置
- hibernate配置说明(2)
- Hibernate原理及其配置
- Hibernate 组件元素配置
- hibernate数据源的配置及其使用
- hibernate应用配置说明
- hibernate 配置说明
- hibernate基础配置说明
- Hibernate配置参数说明
- Hibernate配置说明
- Hibernate配置说明
- hibernate _hbm2dllauto 配置说明
- hibernate 工程配置说明
- Hibernate配置分析说明
- mssql+hibernate+blazeds+flex的配置说明
- 详细解析Java中抽象类和接口的区别
- Java8中的LocalDateTime工具类
- C++ 函数重载
- 水波纹控件实现
- rem、em、px换算
- Hibernate(二):Hibernate的配置及其元素说明
- 容器技术标准化大统一,首个开放容器标准 OCI 1.0 正式发布
- 单点登录原理与简单实现
- C++ 引用
- VUE快速入门新的——组件之间传递数据(1. Prop)
- 高斯金字塔与拉普拉斯金字塔
- Eclipse各版本分析比较
- RH124-第九节-openssh-server
- 栈