数据库

 首页 > 数据库 > MySql > Hibernate基础映射

Hibernate基础映射

分享到:
【字体:
导读:
         摘要:在说Hibernate映射前,我们先来了解下对象关系映射 ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对这些对象的操作。我们来看一张图通过该图,我们可以看出业务实体,在数据库中表现为关系数据,而在内存中表现为对象。应用程序处理对象很容易,但是很...

Hibernate基础映射

   在说Hibernate映射前,我们先来了解下对象关系映射 ORMORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对这些对象的操作。我们来看一张图

通过该图,我们可以看出业务实体,在数据库中表现为关系数据,而在内存中表现为对象。应用程序处理对象很容易,但是很难处理关系数据。ORM做到了关系数据和对象数据之间的映射,可以通过映射关系自动产生SQL语句,在业务逻辑层和数据层之间充当桥梁。

Hibernate映射

 

Hibernate文件

  1.  映射类(*.java):它是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象了。
  2.  映射文件(*.hbm.xml):它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。
  3.  数据库配置文件(*.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,identityMySQLSQLserver的生成方式

sequenceOracle,db2的生成方式,自增序列

native:identity+sequence,跨平台

foreign:只适用基于共享主键的一对一关联映射的时候使用。即一个对象的主键是参照的另一张表的主键生成的。 

总结:

Hibernate的基本映射:重点是对主键生成策略的认识,根据不同数据库选择不同的方式,重要理解。

Hibernate基础映射
分享到:
Mysql自动备份Mysql自动备份
Mysql自动备份Mysql自动备份 批处理命令: set"Ymd=%date:~,4%%date:~5,2%%date:~8,2%" set"hMs=%time:~,2%%time:~3,2%%time:~6,2%" mysqldump-uroot --password=password weixin> D:\mysql_back\weixin_%Ymd%_%hMs%.sql 命令解释 要用mysqldump需要设置环境变量 Mysqldump.exe程序在mysql安装目录的bin目录下 Set是批处理...
【MongoDB】在windows平台下mongodb的分...
【MongoDB】在windows平台下mongodb的分片集群(四)前言:     今天周末却学了一天,有点不想学习了,就在刚写完前两篇后,大概过了一个小时,我就在心里说,如果刚才写的那两篇博客阅读量过了80我就些这篇博客,如果不过,今晚就不再学习了。刚刚一看,一篇恰好80,另一篇是85.。所以在此谢谢网友给的动力。那这篇博客...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……