Hibernate的基础配置

1)MySQL客户端的工具使用

 SQLyog Ultimate 9.3.3 简体中文正式版

图形界面:

<!-- 

    写update只是更新操作,也可以写create, 这样写create的话程序运行的时候就会把数据库里的内容全部删除并且重新创建,当然,前提是数据库必须存在,因为hibernate只会创建表结构, 不会创建数据库,如果指定的数据库不存在,hibernate则会抛出异常 --> 

<property name="hbm2ddl.auto">update</property>  

在做分析和设计的时候:先建立表结构,在建立类,类和类之间是有关系的,关系体现在方法上面。

2) 搭建日志环境显示DDL语句

日志大搭建在上文已经有解决方案了。

<property name="show_sql">true</property>

显示输出SQL语句

<property name="format_sql">true</property>

显示输出SQL格式

3)字段和属性的对应

注解:都需要位于javax.persistence.*;可以使用@Entity

A)表名和类名不同,对类名进行配置

表名和类中定义的名称不同使用@Table(name="table_name") 

private String user_id;

   //@使用注解 annotation

   @Entity 

   @Table(name="admin_log")

    public class Ith_Admin_Log {

    }

B)字段名和属性相同

C)字段名和属性不同

字段名和表中的字段名不同使用@Column(name="xxx"),不用写@column 默认@Basic效果一样

  Xml中不用写 column

private String user_id;

    @Column(name="add_user")

public String getUser_id() {

return user_id;

}

public void setUser_id(String user_id) {

this.user_id = user_id;

}

D)不需要持久化字段:@Transient (transient)透明的 

定义@transient注解属性是透明的,数据库无需知道定义

注解使用日期可以使用@Temportal(TemportalType.DATE)

Hibernate annotation字段映射位置,应该放在get上面

为什么不加属性上面。因为属性本身就是私有的,私有的本身就不需要别人调用。

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

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

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

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

Xml:指定 type

<class name="Teacher" table="Teacher" >

<id name="id" column="id"></id>

<property name="name" type="time" />

</class>

 

private Date   add_date;

@Temporal(TemporalType.DATE)

public Date getAdd_date() {

return add_date;

}

public void setAdd_date(Date add_date) {

this.add_date = add_date;

     }

E映射枚举类型比较少用)

a) @Enumerated

@Enumerated(EnumType.ORDINAL) 枚举类型按位置数,:0,1,2 ...存储

@Enumerated(EnumType.STRING)  枚举类型按设定值存储DB

xml:麻烦

<!--EndFragment-->

猜你喜欢

转载自zds420.iteye.com/blog/1354560