• 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 }
  • 相关阅读:
    在受identityServer4保护的子站点里获得accesstoken的方法
    identity server4 在接入时遇到错误:Exception: Correlation failed. Unknown location的解决方法
    .net core3.1发布时使用https的方式的记录
    调用identityServer4服务端的自定义api接口
    identity server4里遇到:User name '' is invalid, can only contain letters or digits的解决方式
    访问github
    接口幂等性
    类型“any[]”的参数不能赋给类型“SetStateAction<never[]>”的参数。
    什么是VUEX?
    获取Google、Github Oauth ClientID
  • 原文地址:https://www.cnblogs.com/dirgo/p/5126265.html
Copyright © 2020-2023  润新知