首先官网下载一个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. 关于cookie与本地 存储的区别的问题。

    关于cookie与本地 存储的区别的问题. 1. cookie在浏览器和服务器间来回传递.而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存. 2. coo ...

  2. Docker composer搭建Spring Cloud Alibaba 运行环境(二)

    " Spring Cloud Alibaba要用到的组件很多,注册中心nacos, 限流sentinel, 数据库,网关等等.由于用到的组件相对较多,部署会很繁琐,最关键的是没有资源服务器, ...

  3. 初识ABP vNext(12):模块的独立运行与托管

    Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 模块运行 动态 C# API 客户端 最后 前言 很久没更新这个系列...之前的章节中讲到ABP的模块是可以独立运行的 ...

  4. css3滚动条样式美化

    关于滚动条的设计,需要用到css3的微元素,都列在下边吧(以Chrome内核webkit为例). -webkit-scrollbar     滚动条的整体轮廓,width表示纵向滚动条的宽度,heig ...

  5. python使用SVC算法

    python使用SVC算法评估汽车价值 关注公众号"轻松学编程"了解更多. 这是一个关于汽车测评的数据集, 类别变量为汽车的测评: (unacc,ACC,good,vgood) ​ ...

  6. Simulink代码自动生成(一)

    前面介绍了MDB的设计思想并对比了它和传统的嵌入式软件开发之间的差异,现在开始使用Simulink工具演示模型的搭建和C代码的自动生成过程. Matlab版本:R2018B 一.算法模型的搭建 搭建一 ...

  7. MySQL全面瓦解7:查询的过滤条件

    概述 在实际的业务场景应用中,我们经常要根据业务条件获取并筛选出我们的目标数据.这个过程我们称之为数据查询的过滤.而过滤过程使用的各种条件(比如日期时间.用户.状态)是我们获取精准数据的必要步骤, 这 ...

  8. sdasd

    create PROCEDURE v4(in c_year int) BEGIN declare num int(10) default 0; declare num1 int(10); select ...

  9. leetcode26:valid-palindrome

    题目描述 判断题目给出的字符串是不是回文,仅考虑字符串中的字母字符和数字字符,并且忽略大小写 例如:"A man, a plan, a canal: Panama"是回文 &quo ...

  10. 归档空间满了 导致Imp卡住

    今天在使用exp imp将生产环境数据库导入到测试环境的过程中,imp的时候 发现在导入某张表的时候卡住了. 起初是以为该表比较大的缘故,后来过了很久 发现还是卡在那里. 最后分析原因 发现设置的归档 ...