Hibernate框架中hibernate.properties属性文件,hibernate.cfg.xml配置文件,以及Users.hbm.xml映射文件的配置

在实际开发中一般都是hibernate.properties和hibernate.cfg.xml结合使用。一般在属性文件hibernate.properties中存放数据库连接相关的操作数据,在hibernate.cfg.xml文件中存放映射配置,在Users.hbm.xml(.hbm.xml之前的Users时自定义的,可以一个实体类对应一个.hbm.xml文件,也可以多个实体类对应一个.hbm.xml文件)。

之前是将属性和映射配置都存放在hibernate.cfg.xml,如下:




	
		
		
			org.hibernate.dialect.MySQLDialect
		
		
			com.mysql.jdbc.Driver
		
		
			jdbc:mysql://localhost:3306/two
		
		
			root
		
		
			root
		

		
		true
		
		update
		
		

	
上面这种方式来定义属性和映射配置是可以,但是现在开发是将属性定义和映射配置分开,这样可以使得结果更加清晰,需要修改属性就去hibernate.properties文件修改,需要修改映射配置就在hibernate.cfg.xml中去修改。

比如:

1.在hibernate.properties中配置连接数据库需要的属性:

hibernate.dialect=org.hibernate.dialect.MySQLDialect//定义方言(定义优化的sql语句)
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost:3306/firstdb?characterEncoding=utf8
hibernate.connection.username=root
hibernate.connection.password=root
hibernate.show_sql=true//表示是否输出操作数据库的语句
hibernate.format_sql=true//表示是个格式化输出sql语句
hibernate.hbm2ddl.auto=update//表示是否根据映射文件自动创建数据库表
注:hibernate.hbm2ddl.auto的值为create表示每次运行都会新建表;值为create-drop是在关闭SessionFactory时删除仙剑表;值为update(常用值)时表示如果第一运行时数据库没有对应表,那么会新建表,但是如果存在对应数据表,就不再创建对应的数据表。


2.在hibernate.cfg.xml中进行映射配置(注册映射文件):




	
		
		
			
	


3.在Users.hbm.xml中配置持久化(实体,pojo)类和数据库表的映射:






    
    	
        
        
            
        
        
        
    

上面是Users.hbm.xml中具体数据,配置内容可以依照如下格式:



    
    	
        
        
            
        
        
        
    

主键:在Hibernate中持久化类都会有一个标识属性,用于标识实例的唯一,该属性映射到数据库表的主键。
主键生成器:

生成方式的值有:

increment:表示获取数据库中表最大主键值,并+1后作为新的主键。

identity:自动增长,主要使用在mysql,db2。

native:(开发中一般选择此方式)自动增长,Hibernate会根据数据库从identity,sequence(序列),hilo(高低算法)中选择一种合适的方式生成主键,在mysql中时使用identity,在Oracle中时选择sequence(序列)。

uuid:使用UUID算法生成字符串类型主键(主要用于分布式部署)。

数据表各字段配置:,实体类的属性与数据库表中列名(字段名)对应,在给定数据类型时最好写上此数据类型对应的包名(写上全名)。







你可能感兴趣的:(JavaEE)