hibernate 基础配置

1.Hibernate.cfg.xml:hbm2ddl.auto(用的比较多是create)

  1. Create 自动在数据库创建表
  2. Update 根据实体类更新表结构
  3. create-drop关闭SessionFactory 会把数据库创建好的表给删掉
  4. validate  对数据操作之前会检查表的结构是否与配置文件是否匹配

2.先建表还是先建类?先建表

3.搭建日志环境并配置显示DDL语句

  1. 问题? 控制台只显示插入的sql语句 未显示建表sql
  2. 日志框架 slf
  3. Hibernate 3.3.2所使用的slf 接口定义了一系列规范
  4. 具体的实现有很多种 1.slf4j 2.log4j 3.jdk logging api 4.appche commons-logging
  5. 用的较多log4j  可以用slf接口 log4j来实现(  slf4j与log4j的关系:slf4j像是一个大管家,可以管理许多的日志框架,log4j是其中之一)

步骤:

  1. 添加slf4j-log4j12-1.5.5.jar包实现 slf4j与log4j之间的对接
  2. 添加log4j jar包 log4j-1.2.15.jar
  3. 编写Log4j配件文件 (API中复制)路径hibernate-distribution-3.3.2.GA\project\etc
  4. log4j.logger.org.hibernate.tool.hbm2ddl=debug可以在控制台把建表以及其他相关信息打印出来

4.hibernate.cfg.xml : show_sql   输出所有SQL语句到控制台

5.hibernate.cfg.xml :format_sql在log和console中打印出更漂亮的SQL

   true

6.表名和类名不同,对表名进行配置

  1. Annotation:@Table(name=”表名”)
  2. Xml:查询参考文档

7.字段名和属性相同

  1. Annotation:默认为@Basic,写不写都可以
  2. Xml中不用写column

8.字段名和属性不同

  1. Annotation:@Column( name=”列名”)(写在字段get方法上)
  2. Xml: 询参考文档

9.不需要persistence的字段

  1. Annotation:@Transient   定义不写入数据库,属性透明
  2. Xml不写

10.映射日期与时间类型,指定时间精度

a)         Annotation:@Temporal(参数) 参数有3种 只显示时间,只显示日期,时间日期都显示

     //@Temporal(TemporalType.DATE) 只显示日期

        //@Temporal(TemporalType.TIME) 只显示时间

//@Temporal(TemporalType.TIMESTAMP) 显示日期与时间

b)         xml:指定 type

      

              

              

       

11.映射枚举类型( 比较少用可以不会)

a)Annotation:

@Enumerated(EnumType.STRING) 字符串枚举类型

@Enumerated(EnumType.ORDINAL) 数序(数字)枚举类型(数据库存枚举的下标)

b) Xml:相当麻烦

你可能感兴趣的:(hibernate 基础配置)