Hibernate正向工程(实体类-->数据库)

1,新建实体类News.java

 1 package com.hanqi.dao;
 2
 3 import java.util.Date;
 4
 5 public class News {
 6
 7     private Integer id;
 8     private String title;
 9     private String contant;
10     private Date createdate;
11
12     public Integer getId() {
13         return id;
14     }
15     public void setId(Integer id) {
16         this.id = id;
17     }
18     public String getTitle() {
19         return title;
20     }
21     public void setTitle(String title) {
22         this.title = title;
23     }
24     public String getContant() {
25         return contant;
26     }
27     public void setContant(String contant) {
28         this.contant = contant;
29     }
30
31     /**
32      * @return the createdate
33      */
34     public Date getCreatedate() {
35         return createdate;
36     }
37     /**
38      * @param createdate the createdate to set
39      */
40     public void setCreatedate(Date createdate) {
41         this.createdate = createdate;
42     }
43     @Override
44     public String toString() {
45         return "News [id=" + id + ", title=" + title + ", contant=" + contant + ", createdate=" + createdate + "]";
46     }
47 }

2,利用hibernate生成实体类对应的配置文件,(右键-新建-其他-hbm.xml)News.hbm.xml

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4 <!-- Generated 2016-1-12 23:36:52 by Hibernate Tools 3.4.0.CR1 -->
 5 <hibernate-mapping>
 6     <class name="com.hanqi.dao.News" table="NEWS">
 7         <id name="id" type="java.lang.Integer">
 8             <column name="ID" />
 9             <generator class="native" /><!-- 注意此处主键生成方法常用native -->
10         </id>
11         <property name="title" type="java.lang.String">
12             <column name="TITLE" />
13         </property>
14         <property name="contant" type="java.lang.String">
15             <column name="CONTANT" />
16         </property>
17         <property name="createdate" type="java.util.Date">
18             <column name="CREATEDATE" />
19         </property>
20     </class>
21 </hibernate-mapping>

3,将hbm.xml添加到hibernate配置文件hibernate.cfg.xml中

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 5 <hibernate-configuration>
 6     <session-factory>
 7
 8         <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
 9         <!-- 数据库连接 -->
10         <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
11         <property name="hibernate.connection.password">test</property>
12         <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
13         <property name="hibernate.connection.username">test</property>
14         <!-- 用户方案 -->
15         <property name="hibernate.default_schema">TEST</property>
16         <!-- 数据库方言 -->
17         <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
18         <!-- sql语句/调试 -->
19         <property name="hibernate.show_sql">true</property>
20         <property name="hibernate.format_sql">true</property>
21          <!--  自动建表方式 -->
22         <property name="hibernate.hbm2ddl.auto">update</property>
23
24         <property name="hibernate.search.autoregister_listeners">false</property>
25         <property name="hibernate.validator.apply_to_ddl">false</property>
26         <!-- 映射文件 -->
27         <mapping resource="com/hanqi/dao/News.hbm.xml" />
28
29     </session-factory>
30 </hibernate-configuration>

4,新建JUnit Test Case类TestNews.java进行测试

 1 package com.hanqi.dao;
 2
 3 import static org.junit.Assert.*;
 4
 5 import java.util.Date;
 6
 7 import org.hibernate.Session;
 8 import org.hibernate.SessionFactory;
 9 import org.hibernate.Transaction;
10 import org.hibernate.boot.registry.StandardServiceRegistry;
11 import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
12 import org.hibernate.cfg.Configuration;
13 import org.junit.Test;
14 import org.hibernate.service.*;
15
16 public class TestNews {
17
18     @Test
19     public void test() {
20         System.out.println("测试");
21         //1-构建配置类
22         Configuration cfgrn = new Configuration().configure();
23
24         //2-构建配置工厂类
25         ServiceRegistry srg = new StandardServiceRegistryBuilder().
26                 applySettings(cfgrn.getProperties()).build();
27
28         //3-构建会话工厂对象,比较耗资源
29         SessionFactory sf = cfgrn.buildSessionFactory(srg);
30
31         //4-构建会话对象
32         Session se = sf.openSession();
33
34         //5-开始事务
35         Transaction tr = se.beginTransaction();
36
37         //6-执行操作
38 /*        News news = new News();
39
40         news.setTitle("标题");
41         news.setContant("这是内容");
42         news.setCreatedate(new Date());
43
44         se.save(news);//插入
45 */
46         News news2 = (News)se.get(News.class, 1);
47
48         System.out.println(news2);//查询输出
49
50         //7-提交事务
51         tr.commit();
52
53         //8-关闭会话
54         se.close();
55
56         //9-关闭会话工厂
57         sf.close();
58
59     }
60
61 }
时间: 2025-01-20 02:52:33

Hibernate正向工程(实体类-->数据库)的相关文章

myeclipse使用hibernate正向工程和逆向工程

1.myeclipse使用hibernate正向工程,hibernate的正向工程是指从java实体类生成数据库表的过程,这种过程符合java程序员面向对象编程的思想,也是工程设计的时候使用比较多的一种思想.具体实施过程如下. 1).手动创建java pojo对象,并对pojo对象加上hibernate anotation.这样做的目的是通过myeclipse来生成hibernate映射文件, public class User { private int uid; private String

蜗牛—Hibernate反向生成实体类及配置文件

今天学习了Hibernate的一些知识 第一步,打开myeclipse中的database视图,找到相应的表,选中后右键单击, 接下来, 蜗牛-Hibernate反向生成实体类及配置文件

hibernate 反向生实体类 and 为什么老是多一个id

hibernate 反向生实体类 and 为什么老是多一个id 2017年04月01日 20:32:51 阅读数:548 原文地址:https://www.cnblogs.com/javaboy2018/p/9119040.html

Hibernate自动生成实体类注解(转)

常用的hibernate annotation标签如下: @Entity --注释声明该类为持久类.将一个Javabean类声明为一 个实体的数据库表映射类,最好实现序列化.此时,默认情况下,所有的类属性都为映射到数据表的持久性字段.若在类中,添加另外属性,而非映射来数据库的, 要用下面的Transient来注解. @Table (name="promotion_info") --持久性映射的表(表名="promotion_info)[email protected]是类一级

MyEclipse Hibernate反向工程生成实体类

不废话,直接上步骤 step1.Window -> Open Perspective -> MyEclipse Database Explorer 到DB Broswer界面 step2.右键 -> New,新建一个数据库连接 step3.创建一个java项目 step4.给项目添加Hibernate Capabilities 项目 -> 右键 -> MyEclipse -> Add Hibernate Capabilities Add Hibernate Capabi

Snail—Hibernate反向生成实体类及配置文件

今天学习了Hibernate的反向生成类文件 第一步.打开myeclipse中的database视图,找到对应的表,选中后右键单击. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXExNzkxNDIyMDE4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast"> 接下来. 然后呢, watermark/2/text/aHR0cDovL2Jsb2

06Hibernate实体类生命周期

前言:Session接口是Hibernate向应用程序提供的操作数据库的主要接口,它提供了基本的增删查改方法,而且Session具有一个缓存它是Hibernate的一级缓存.站在持久化层的角度,Hibernate把实体类分为4种状态:持久化状态.临时状态.游离状态和删除状态.本文将会介绍Hibernate这些机制的细节以及使用方法. 1.Hibernate的Session缓存 (1)Session缓存的作用 使用Session的缓存有三大作用: 减少访问数据库的频率,当Session的get()

【2017-04-20】Ado.Net与面向对象结合架构中的数据访问层(实体类,数据访问类)

开发项目三层架构:界面层.业务逻辑层.数据访问层 今天学习一下数据访问层,分为实体类和数据访问类 所有的类放在App_Code这个文件夹下边.养成一个好的习惯. 一.实体类 数据库中的表映射为一个类,类名与表名一致.表中的每一列,都为该类下的成员变量和属性也就是最简单的封装 把数据库中的表名变为类的类名. 把数据库中的每一个列,变为实体类中的成员变量和属性 列名与属性名一致.成员变量名:在列名前边加上下划线.因为在外部访问只能访问到属性,为了看起来一致. using System; using

ADO.NET 【实体类】【数据访问类】

认识分层结构,分层式结构是最常见,也是最重要的一种结构. 三层架构(3-tier architecture) 界面层(User Interface layer) 主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问. 业务逻辑层(Business Logic Layer)主要是针对具体的问题的操作,也可以理解成对数据层的操作 数据访问层(Data access layer)主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层 数据访问层包括   实体类 数据访问类 优点