02_hibernate5快速入门_注解的方式

原创 2017年05月28日 16:45:05

接上一章文章http://blog.csdn.net/hnzmdpan/article/details/72790929,本文以注解的形式,实现了和上文一样的功能。


hibernate.cfg.xml文件里,把mapping标签的地方改一下,由原来的resource=xxx,换成class=xxx

<mapping class="org.hibernate.tutorial.annotations.Event"/>

Event的代码如下所示
package org.hibernate.tutorial.annotations;

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;

@Entity
@Table( name = "EVENTS" )
public class Event {
    private Long id;

    private String title;
    private Date date;

	public Event() {
		// this form used by Hibernate
	}

	public Event(String title, Date date) {
		// for application use, to create new events
		this.title = title;
		this.date = date;
	}

	@Id
	@GeneratedValue(generator="increment")
	@GenericGenerator(name="increment", strategy = "increment")
    public Long getId() {
		return id;
    }

    private void setId(Long id) {
		this.id = id;
    }

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "EVENT_DATE")
    public Date getDate() {
		return date;
    }

    public void setDate(Date date) {
		this.date = date;
    }

    public String getTitle() {
		return title;
    }

    public void setTitle(String title) {
		this.title = title;
    }
}
解释一下上面的代码,可以看到导入的类中,好多都是JPA,那么什么是JPA呢?Java Persistence API,更详细的可以百度下。Hibernate5.0.12,用到的JPA版本是2.1,所以里面出现了好多的JPA的注解。

@Entity,可以理解为,该类在数据库有一张表与其对应。
@Table,该类在数据库中的名字。可以不写,不写的话,表名就和该类名一样。
@Id,表中的标识
@GeneratedValue和@GenericGenerator通常一起使用,表示主键的值的生成方式,专业述语为ID的生成策略
@Column,定义列名。
@Temporal,定义日期日间的格式。DATE(java.sql.Date), TIME(java.sql.Time), TIMESTAMP(java.sql.Timestamp)
值得说的明的,类中的属性,默认情况下都会被Hibernate持久化。简单而言,都是会被Hibernate管理。


源代码 https://git.oschina.net/hnzmdpan/hibernate.git 分支为quickstart_annotations。


最后,我建了个 QQ群622539266,Java知识交流,期待你的加入。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Spring依赖注入的四种方式(重点是注解方式)

原文地址: Spring中依赖注入的四种方式  在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入  这是最常用的方式; · 使用...
  • cheetahlover
  • cheetahlover
  • 2016年06月07日 01:15
  • 6591

spring+sprinmvc+mybatis基本整合(二)--基于spring注解mybais非注解非Mapper接口方式

我有点不满意CSDN,我辛辛苦苦好不容易认真写回博客,我提交时,提示我没登陆,一提交,我码好的那多字全没有啦。有时间再重新码吧,目前在此只提供整合好的demo下载地址:三大框架整合demo...
  • duchao123duchao
  • duchao123duchao
  • 2016年04月27日 03:38
  • 939

自定义一个注解来获取数据库的链接

import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.a...
  • zhongxu_yuan
  • zhongxu_yuan
  • 2018年01月05日 23:11
  • 13

java反射(二)-基于反射和注解的Excel解析工具Demo

基于反射和注解的Excel解析工具Demo 原理 反射的运用部分 通过Class的Field,可以给对应Class的Field字段对应的属性设值 注解的运用部分 通过给实体类的属性加上注...
  • cchengone
  • cchengone
  • 2017年01月14日 21:28
  • 767

cxf webservice 注解方式实现!!!!!

1.注解编译服务器端代码 . 2.import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebS...
  • wwwyuanliang10000
  • wwwyuanliang10000
  • 2014年03月10日 19:31
  • 2254

java注解的简单使用

今天要来说一下java的注解api,记得以前写子类重写父类的方法时,都会看到一个@Override的东西,当时不知道这玩意是什么,现在才知道是javase5中内置的标准注解。然后第一次真正了解注解的时...
  • u013131305
  • u013131305
  • 2016年05月30日 15:20
  • 116

spring 常用注解代理方式及注意点

spring 常用注解代理方式及注意点 jdk动态代理和cglib代理区别: 一、简单来说:   JDK动态代理只能对实现了接口的类生成代理,而不能针对类   CGLIB是针对类实现代理,主要...
  • u011258318
  • u011258318
  • 2018年01月30日 20:39
  • 18

深刻剖析spring三种注入方式以及使用注解的原理

  概述 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时...
  • qq_22075041
  • qq_22075041
  • 2017年05月14日 15:49
  • 1396

基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别

基于JDK动态代理: 该配置方式默认就是JDK动态代理方式   运行单元测试,核心日志如下:  2012-03-07 09:58:44 [main] DEBUG org.springfram...
  • dreamsunday
  • dreamsunday
  • 2015年11月04日 12:05
  • 4015

spring用注解的方式实现属性装配

beans.xml:
  • xzf19901108
  • xzf19901108
  • 2012年07月29日 17:17
  • 940
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:02_hibernate5快速入门_注解的方式
举报原因:
原因补充:

(最多只允许输入30个字)