Hibernate基础映射
在说Hibernate映射前,我们先来了解下对象关系映射 ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对这些对象的操作。我们来看一张图 vcHLudjPtcr9vt26zbbUz/PK/b7d1q685LXE07PJ5KOs
在说Hibernate映射前,我们先来了解下对象关系映射 ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对这些对象的操作。我们来看一张图
vcHLudjPtcr9vt26zbbUz/PK/b7d1q685LXE07PJ5KOsv8nS1M2ouf3Ts8nkudjPtdfUtq+y+sn6U1FM0+++5KOs1NrStc7xwt+8rbLjus3K/b7dsuPWrrzks+S1scfFwbqhozwvcD4KPGgyPkhpYmVybmF0ZdOzyeQ8L2gyPgo8cD4gPGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20141110/20141110091545138.jpg" alt="\">
Hibernate文件
- 映射类(*.java):它是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象了。
- 映射文件(*.hbm.xml):它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。
- 数据库配置文件(*.properties/*.cfg.xml):它是指定与数据库连接时需要的连接信息,比如连接哪种数据库、登录数据库的用户名、登录密码以及连接字符串等。当然还可以把映射类的地址映射信息放在这里。
基本映射:
具体看操作
1映射实体类
//默认空构造函数的重要性 public class User { public User() { // TODO Auto-generated constructor stub } public User(String id,String name){ this.id=id; this.name=name; } private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getExprieTime() { return exprieTime; } public void setExprieTime(Date exprieTime) { this.exprieTime = exprieTime; } private String name; private String password; private Date createTime; private Date exprieTime; }
实体类的设计原则:
* 实现无参的默认的构造函数
* 提供一个标识
*建议不要使用final修饰实体类(因为采用load延时加载数据的时候会继承实体类生成代理对象)
*建议为实体类生成getter和setter方法(如果不使用,需要用属性field标识)
2映射文件User.hbm.xml
3hibernate.cfg.xml配置文件
com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/hibernast_test root hanhan org.hibernate.dialect.MySQLDialect true update Hibernate的主键生成策略种类
手动:Assigned
Hibernate主动:uuid
数据库交互:
需要和数据库交互以生成id的:guid、identity、sequence、native、foreign
说明:需要和数据库交互生成,需要经过一次查询才能生成
Guid,identity:MySQL,SQLserver的生成方式
sequence:Oracle,db2的生成方式,自增序列
native:identity+sequence,跨平台
foreign:只适用基于共享主键的一对一关联映射的时候使用。即一个对象的主键是参照的另一张表的主键生成的。
总结:
Hibernate的基本映射:重点是对主键生成策略的认识,根据不同数据库选择不同的方式,重要理解。
推荐阅读
-
Hibernate基础映射
-
PHP在XP下IIS和Apache2服务器上的安装_php基础
-
laravel 基础教程 -- 错误和日志
-
PHP常用代码大全(新手入门必备)_php基础
-
swiper的基础使用(六)
-
php中static静态变量的使用方法详解_php基础_脚本之家
-
PHP基础配置:PHP最常用的ini函数
-
在Windows系统上安装PHP运行环境文字教程_php基础_脚本之家
-
C二叉树基础
-
JavaEE基础day02 1.定义Java中的变量 四类八种 2.变量定义和使用的注意事项 3.数据类型的转换、强制数据类型转换4.算数运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符