1) MySQL 客户端的工具使用
图形界面:
<!-- 写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)
H ibernate annotation 字段映射位置,应该放在 get 上面
为什么不加属性上面。因为属性本身就是私有的,私有的本身就不需要别人调用。
Annotation : @Temporal( 参数 ) 参数有 3 种 只显示时间 , 只显示日期 , 时间日期都显示 //@Temporal(TemporalType.DATE) 只显示日期 //@Temporal(TemporalType.TIME) 只显示时间 //@Temporal(TemporalType.TIMESTAMP) 显示日期与时间 X ml: 指定 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; } |
|
a) @Enumerated
@Enumerated(EnumType.ORDINAL) 枚举类型按位置数 , 如 :0,1,2 ... 存储
@Enumerated(EnumType. STRING ) 枚举类型按设定值存储 DB
xml: 麻烦
<!--EndFragment-->