1. 首先创建hibernate.cfg.xml配置文件并做简单的配置

    <hibernate-configuration>
       <session-factory>
           <!-- Database connection settings -->
           <property name="connection.url">jdbc:mysql://localhost:3306/databaseName?useSSL=false&amp;serverTimezone=UTC&amp;verifyServerCertifate=false&amp;allowPublicKeyRetrieval=true</property>
           <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
           <property name="connection.username">root</property>
           <property name="connection.password">passwd</property>

           <!-- SQL dialect -->
           <property name="dialect">org.hibernate.dialect.MySQL8Dialect</property>

           <!-- Echo all executed SQL to stdout -->
           <property name="show_sql">true</property>
           <property name="format_sql">true</property>

           <!-- Drop and re-create the database schema on startup -->
           <property name="hbm2ddl.auto">create</property>

           <!-- JDBC connection pool (use the built-in) -->
           <property name="connection.pool_size">1</property>

           <!-- Disable the second-level cache -->
           <property name="cache.provider_class">org.hibernate.cache.internal.NoCachingRegionFactory</property>
       </session-factory>
    </hibernate-configuration>
  2. 创建实体Java类

    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")
       @Column(name = "EVENTS_ID")
       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;
      }
    }
  3. 向hibernate.cfg.xml文件中添加映射信息

    <mapping class="类路径.Event"/>
  4. JUnit测试测试程序

    import java.util.Date;
    import java.util.List;

    import junit.framework.TestCase;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.boot.MetadataSources;
    import org.hibernate.boot.registry.StandardServiceRegistry;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

    public class AnnotationsIllustrationTest extends TestCase {
       private SessionFactory sessionFactory;

       @Override
       protected void setUp() throws Exception {
           // A SessionFactory is set up once for an application!
           final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
                  .configure() // configures settings from hibernate.cfg.xml
                  .build();
           try {
               sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
          } catch (Exception e) {
               // The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory
               // so destroy it manually.
               StandardServiceRegistryBuilder.destroy(registry);
          }
      }

       @Override
       protected void tearDown() throws Exception {
           if (sessionFactory != null) {
               sessionFactory.close();
          }
      }

       @SuppressWarnings({"unchecked"})
       public void testBasicUsage() {
           // create a couple of events...
           Session session = sessionFactory.openSession();
           session.beginTransaction();
           session.save(new Event("Our very first event!", new Date()));
           session.save(new Event("A follow up event", new Date()));
           session.getTransaction().commit();
           session.close();

           // now lets pull events from the database and list them
           session = sessionFactory.openSession();
           session.beginTransaction();
           List result = session.createQuery("from Event").list();
           for (Event event : (List<Event>) result) {
               System.out.println("Event (" + event.getDate() + ") : " + event.getTitle());       }        session.getTransaction().commit();        session.close();   }}
  5. 运行测试

Hibernate 5 入门指南-基于类注解的更多相关文章

  1. Hibernate 5 入门指南-基于映射文件

    由于Hibernate 4版本混乱,Hibernate 3有些过时,Hibernate 5的开发文档尚不完善,所以构建一份简单的Hibernate 5的入门指南 注:案例参考Hibernate 官方参 ...

  2. Hibernate 5 入门指南-基于Envers

    首先创建\META-INF\persistence.xml配置文件并做简单的配置 <persistence xmlns="http://java.sun.com/xml/ns/pers ...

  3. Hibernate 5 入门指南-基于JPA

    首先创建\META-INF\persistence.xml配置文件并做简单的配置 <persistence xmlns="http://java.sun.com/xml/ns/pers ...

  4. Spring框架入门之基于Java注解配置bean

    Spring框架入门之基于Java注解配置bean 一.Spring bean配置常用的注解 常用的有四个注解 Controller: 用于控制器的注解 Service : 用于service的注解 ...

  5. spring与hibernate整合配置基于Annotation注解方式管理实务

    1.配置数据源 数据库连接基本信息存放到properties文件中,因此先加载properties文件 <!-- jdbc连接信息 --> <context:property-pla ...

  6. SpringMVC入门(基于注解方式实现)

    ---------------------siwuxie095                             SpringMVC 入门(基于注解方式实现)         SpringMVC ...

  7. 张高兴的 .NET IoT 入门指南:(八)基于 GPS 的 NTP 时间同步服务器

    时间究竟是什么?这既可以是一个哲学问题,也可以是一个物理问题.古人对太阳进行观测,利用太阳的投影发明了日晷,定义了最初的时间.随着科技的发展,天文观测的精度也越来越准确,人们发现地球的自转并不是完全一 ...

  8. spring+hibernate实体类注解详解(非原创) + cascade属性取值

    @Entity //继承策略.另一个类继承本类,那么本类里的属性应用到另一个类中 @Inheritance(strategy = InheritanceType.JOINED ) @Table(nam ...

  9. Java Gradle入门指南之内建与定制任务类(buildSrc、Groovy等)

        上一篇随笔介绍了Gradle的安装与任务管理,这篇着重介绍Gradle的内建任务(in-built tasks)与自定义任务(custom tasks),借助Gradle提供的众多内建任务类型 ...

随机推荐

  1. 3分钟看完Java 8——史上最强Java 8新特性总结之第二篇 Stream API

    目录 · 概况 · 切片(Slicing) · 映射(Mapping) · 匹配(Matching) · 查找(Finding) · 归约(Reducing) · 排序(Sorting) · 数值流( ...

  2. Pytorch1.0入门实战二:LeNet、AleNet、VGG、GoogLeNet、ResNet模型详解

    LeNet 1998年,LeCun提出了第一个真正的卷积神经网络,也是整个神经网络的开山之作,称为LeNet,现在主要指的是LeNet5或LeNet-5,如图1.1所示.它的主要特征是将卷积层和下采样 ...

  3. python理解描述符(descriptor)

    Descriptor基础 python中的描述符可以用来定义触发自动执行的代码,它像是一个对象属性操作(访问.赋值.删除)的代理类一样.前面介绍过的property是描述符的一种. 大致流程是这样的: ...

  4. 快速搭建一个Quartz定时任务【转载,好文 ,值得收藏,亲身试用 效果不错】

    Quartz.NET 入门 概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔 ...

  5. Element-UI 日期范围 date-picke

    实际项目应用案例: <el-form-item label="开始日期:" prop="StartDate"> <el-date-picker ...

  6. C#自动关闭弹出提示框

    自动关闭弹出提示框(用一个小窗体显示提示信息):例如在一个form窗体中弹出自动关闭的提示框1.首先创建一个弹出提示信息的窗体 AutoCloseMassageBox,在里面拖一个lable控件,去掉 ...

  7. vb.net ping

    Function ping(ByVal IP As String) As String If My.Computer.Network.Ping(IP) Then MessageBox.Show(&qu ...

  8. NPM测试模块之rewire教程

    摘要:有了rewire模块,再也不用担心测试私有函数了. 在玩转Node.js单元测试,我介绍了3个用于编写测试代码的NPM模块:Mocha, Should以及SuperTest.为了怂恿大家写单元测 ...

  9. Javascript动态引用CSS文件的2种方法介绍

    最近做一个项目,需要javascript动态插入样式,结果以前的方法失效了!查了2个小时的原因竟然是自己手贱,这个最后再说! javascript插入样式在前端开发中应用比较广泛,特别是在修改前端表现 ...

  10. 07-HTML-内嵌标签

    <html> <head>  <title>内嵌标签学习</title>  <meta charset="utf-8"/> ...