我学Hibernate - 02 (加入注解方式)

来源:互联网 发布:linux 分辨率 编辑:程序博客网 时间:2024/06/05 17:09

了解了上01中采取映射xml的方式,通过hibernate保存数据的方法
接下来进一步尝试使用Annotation注解的方式来保存数据。

OK,需要加入JAR包:
这里写图片描述


建立Teacher.java类

/** *  */package com.zeke.model;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;/** * @author zhong * */@Entity@Table(name="TEACHERS")public class Teacher {    @Id    @Column(name="ID_")    private int id;    @Column(name="NAME_")    private String name;    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;    }}

注意这里使用了
@entity,实体类注解
@table , 定义表名的注解
@column, 定义字段名的注解


在hibernate.cfg.xml中添加映射,注意配置方式与xml有所不同。

<!-- 注解形式的映射关系配置 -->        <mapping class="com.zeke.model.Teacher" />

哪里不同呢?
我们发现,xml mapping 中使用resource来指定。而注释的方式是指定的class。


创建一个TeacherTest.java测试类,此处获取configuration也是不一样的
看代码:

/** *  */package com.zeke.test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.AnnotationConfiguration;import org.hibernate.cfg.Configuration;import com.zeke.model.Teacher;/** * @author zhong * */@SuppressWarnings("deprecation")public class TeacherTest {    public static void main(String[] args) {        Teacher t = new Teacher();        t.setId(1);        t.setName("zeke");        Configuration cfg = new AnnotationConfiguration();        SessionFactory sf = cfg.configure().buildSessionFactory();        Session session = sf.openSession();        //事务开始        session.beginTransaction();        session.save(t);        //提交事务        session.getTransaction().commit();        //关闭session        session.close();        sf.close();    }}

看到了吗,以下方式不一样吧。

Configuration cfg = new AnnotationConfiguration();


Ok,测试完成!

0 0
原创粉丝点击