使用JPA Annotation 标注实体
java 通过Annotation可以将一些额外的信息写在java源程序中,这些信息可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用Annotation,程序开发人员可以在原有逻辑不变的情况下,在源文件中嵌入一些补充信息。
使用Annotation可以避免一个实体需要同时维护两份文件(java类和XML映射文件),实体类的JAVA代码已经映射信息都可以写在一份文件中。
Annoation小实验。第一步加入相应的JAR文件
第二步新建数据库以及表格
第三步写类文件
package model;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity // 表示这个是一个实体类
public class Teacher {
private int id;
private String name;
private String title;
@Id //ID
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
然后就不需要写teacher.hbm.xml文件了,不过需要在hibernate.cfg.xml文件加一句话
<mapping class="model.Teacher"/>
最后实现方法 和之前student类一样,唯一需要主要的是 配置文件的加载需要另外一个方法
Configuration cfg = new AnnotationConfiguration().configure();//注意要使用AnnotationConfiguration 才能拿到类中的配置.
最后运行,可以在数据库看到插入的相对的数据。
初学,疑问,在XML配置文件中可以设置字段类型和长度,不知道Annotation,怎么写,还得补习补习前面知识。
2015.7.28
hibernate 配置文件属性
<property name="show_sql">true</property> 在控制台生成hibernate 生成的SQL
<property name="format_sql">true</property> 是否将SQL语句转换成良好的SQL
设置创建SessionFactory时,是否根据映射文件自动建立数据库表。
<property name="hbm2ddl.auto">update</property>
只是根据映射文件去和数据库中的表对应起来,如果不一致,就更新表的结构
<property name="hbm2ddl.auto">create</property>
在hibernate初始化时会创建表格,在运行结束之后不删除表格,而是在下一次运行的时候如果有旧的删掉,没有旧的,重新建表格
<property name="hbm2ddl.auto">create-drop</property>
create-drop:表示在hebarinate初始化时创建表格,程序运行结束的时候会删除相应的表格,在实际项目中不用
<property name="hbm2ddl.auto">validate</property>