首先官网下载一个hibernate的架包,由于时间关系,博主已经分享到了百度网盘:https://pan.baidu.com/s/1Mw0Og3EKnouf84Njz9UicQ,提取码lens

Hibernate的插件:https://pan.baidu.com/s/1YLBe4m9wlfu5dXzYcrpS1Q ,提取码:lens

  话不多说我们开始吧

    


刚开始可以创建一个普通的Java项目如上所是,导入架包,由于博主还不精通所以价包全部导入,架包的基本路径recv\hibernate-release-5.4.22.Final\hibernate-release-5.4.22.Final\lib\required。

接下来配置cfg文件,以.cfg.xml结尾。我们创建名为hibernate.cfg.xml

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <!-- 配置Hibernate的环境信息 -->
    <session-factory>
        <!--
            数据库连接基础信息
                hibernate.connection.
         -->
        <!-- 驱动类 -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <!-- 连接URL -->
        <property name="hibernate.connection.url">jdbc:mysql:///user_db?characterEncoding=UTF-8</property>
        <!-- 登录名 -->
        <property name="hibernate.connection.username">root</property>
        <!-- 登录密码 -->
        <property name="hibernate.connection.password">123456</property>
        
        <!--
            Hibernate配置
                hibernate-release-5.4.22.Final\hibernate-release-5.4.22.Final\project\etc\hibernate.properties
         -->
        <!-- 数据库方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
        <!-- 打印SQL -->
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <!--
            表生成策略
                none:不使用表生成策略
                create:每次执行之前都会先删除该表,创建一张新的表
                create-drop:创建表并删除表
                update:
                    当表不存在的时候,则Hibernate会自动创建表
                    当表存在时
                        表结构没有改变,则不会创建或者更新包
                        表结构发生改变,则会去更新表结构(如果是删除列,则不会执行)
                validate:验证表
         -->
        <property name="hibernate.hbm2ddl.auto">update</property>
        
        <!-- 引入映射文件 -->
        <mapping resource="user-mapper.hbm.xml"/>        
    </session-factory>
</hibernate-configuration>


  然后配置hbm文件,以hbm.xml结尾,我们创建名为:uesr-mapper.hbm.xml

  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <!--
        类与表的映射关系
     -->
     <class name="com.zb.entity.UserInfo" table="user_info">
         <!-- 属性与字段的映射关系 -->
         <!-- 配置标识列 -->
         <id name="userId" column="user_id">
             <!--
                 指定自增长列的生成器
                     native:让Hibernte根据数据底层的厂商标识自动选择生成规则
              -->
             <generator class="native"></generator>
         </id>
         <!-- 其他普通属性 -->
         <property name="userName" column="user_name"/>
         <property name="userAge" column="user_age"/>
         <property name="userSex" column="user_sex"/>
         <property name="userAddress" column="user_address"/>
         <property name="phoneNumber" column="phone_number"/>
     </class>
</hibernate-mapping>

对了一定要创建一个实体类,hbm文件就是根据实体类创建的


接下来就是测试类了

package com.zb.test;

import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.zb.entity.UserInfo;

public class TestMain {
    public static void main(String[] args) {
        //配置信息对象
        Configuration config = new Configuration();
        //加载全局配置文件
        config = config.configure("hibernate.cfg.xml");
        //创建Session工厂(Hibernate5以后)
        SessionFactory sessionFactory = config.buildSessionFactory();
        //创建数据库访问对象(建立与数据库的会话)
        Session session = sessionFactory.openSession();
        //获取事务对象(开启事务)
        Transaction t = session.beginTransaction();
        
        UserInfo ui = new UserInfo(null, "大公鸡", 69, "男", "高老庄", "6543211",new Date());
        session.save(ui);
        
        //UserInfo userInfo = session.get(UserInfo.class, 2);
        //System.out.println(userInfo);
        
        t.commit();
        session.close();
        sessionFactory.close();
    }
}

以上的内容是创建一个表并插入一条数据,博主也是第一次写博文,有不好的地方请大家见谅

Hibernate的配置跟简单创建一个表并插入一条数据的更多相关文章

  1. mysql同时向一个表中插入多条数据问题!!见详细

    INSERT INTO `表名` (`字段1`,`字段2`,`字段3`,`字段4`) values ('数组1数据1','数组1数据2','数组1数据3','数组1数据4'), ('数组2数据1',' ...

  2. 【Oracle/Java】给十六张表各插入十万条数据 单线程耗时半小时 多线程耗时一刻钟

    测试机Oracle版本: SQL> select * from v$version; BANNER ----------------------------------------------- ...

  3. mssql 一次向表中插入多条数据的方法分享 (转自:http://www.maomao365.com/?p=6058)

    转自:http://www.maomao365.com/?p=6058) <span style="font-size:16px;font-weight:bold;"> ...

  4. 简单创建一个SpringCloud2021.0.3项目(二)

    目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上一篇教程 3. 创建公共模块Common 4. 网关Gateway 1. 创建Security 2. Security登陆配置 3 ...

  5. 简单创建一个SpringCloud2021.0.3项目(一)

    目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 新建父模块和注册中心 1. 新建父模块 2. 新建注册中心Eureka 3. 新建配置中心Config 4. 新建两个业务服务 1. ...

  6. 简单创建一个SpringCloud2021.0.3项目(四)

    目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上三篇教程 3. 日志处理 1. 创建日志公共模块 2. Eureka引入日志模块 4. 到此的功能代码 5. 注册中心换成naco ...

  7. 简单创建一个SpringCloud2021.0.3项目(三)

    目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上俩篇教程 3. Gateway集成sentinel,网关层做熔断降级 1. 超时熔断降级 2. 异常熔断 3. 集成sentine ...

  8. Oracle 数据库基础学习 (二) 学习小例子:创建一个表,记录商品买卖的情况

      运行环境:Oracle database 11g + PL/SQL Developer ex: --创建一个表 create table plspl_test_product( --加入not n ...

  9. sqlite创建数据库并创建一个表

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...

随机推荐

  1. 导出excel带合并单元格方法的Demo

    package com.test.util; import java.io.FileNotFoundException; import java.io.FileOutputStream; import ...

  2. 20202427-张启辰《Python3初学:罗马数字转阿拉伯数字》

    目录 20202427-张启辰<Python3初学:罗马数字转阿拉伯数字> 1.规则 2.局限性 3.Python3解决 20202427-张启辰<Python3初学:罗马数字转阿拉 ...

  3. 单例模式的几种实现And反射对其的破坏

    一 单例模式概述 (一) 什么是单例模式 单例模式属于创建型模式之一,它提供了一种创建对象的最佳方式 在软件工程中,创建型模式是处理对象创建的设计模式,试图根据实际情况使用合适的方式创建对象.基本的对 ...

  4. DM存储过程示例子-表的行数对比

    1.DM存储过程示例子,表的行数对比 1 --1. ================全量 2 --select * from DM_VERI where c2 != c3; 3 --drop tabl ...

  5. SPOJ16607 IE1 - Sweets

    题面 传送门: 洛咕 SPOJ Solution 这题的想法挺妙的. . 首先,对于这种区间求答案的问题,我们一般都可以通过类似前缀和的思想一减来消去a,即求[a,b]的答案可以转化为求[1,b]-[ ...

  6. Redis的介绍及使用

    redis 简介 简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向.另外,redis 也经常 ...

  7. 简单Emacs配置

    (global-set-key [f9] 'compile-file) (global-set-key [f10] 'gud-gdb) (global-set-key (kbd "C-s&q ...

  8. 2020最常见的200+Java面试题汇总(含答案解析)

    前言 2020年快要结束了,很多朋友问题,有没有整理今年的一些面试题,最近抽时间整理了一份Java面试题.或许这份面试题还不足以囊括所有 Java 问题,但有了它,我相信足以应对目前市面上绝大部分的 ...

  9. CSP-S 2020全国开放赛前冲刺模拟训练题1 T4 二维码

    组合 首先可以考虑一个状态合法的条件,可以发现的是最后得到的矩阵一定是至少有一行或是有一列全$0$或$1$,如果把这一列或这一行删掉那么将剩下的子矩阵拼接起来又是一个子问题,同样的也是至少有一列或一行 ...

  10. java开发就业信息管理系统

    本文实例为大家分享了java就业信息管理平台开发案例,供大家参考,具体内容如下 可查询公司信息,学生信息,班级信息,针对学生就业与否信息的统计,老师和管理员登录后的权限不同等就业信息管理平台想要实现的 ...