首先官网下载一个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. 关于GIT配置公私钥

    问题:pull代码时显示 原因:公钥与私钥对不上,或者没有配置导致 解决: 1.生成私钥:TortoiseGIT → PuttyGen → Generate(点击后鼠标晃动会加速)→Save Priv ...

  2. CodeForces 1067E Random Forest Rank

    题意 给定一棵 \(n\) 个节点的树,每条边有 \(\frac{1}{2}\) 的概率出现,这样会得出一个森林,求这个森林的邻接矩阵 \(A\) 的秩 \(\operatorname{rank} A ...

  3. nb-iot技术能自组网吗

    NB-IoT是运营商主导的网络,运营在授权频段上,LoRa运营在开放频段上,可以由企业自主建设.NB-IoT构建于蜂窝网络,只消耗大约180KHz的带宽,可直接部署于GSM网络.UMTS网络或LTE网 ...

  4. CF1444A (1445C)Division 题解

    题意:求最大的正整数 \(x\) ,使 \(x \mid p且q \nmid x\) . 首先,当 \(q \nmid p\) ,显然取 \(x=p\) 是最优解. 现在,我们考虑 \(q \mid ...

  5. linux的mysql修改默认端口3306

    linux 修改mysql默认端口3306 cd /etc/mysql/my.cnf 修改两处 客户端的port=3306 和mysqld的服务器端口port=3306 [client] port=3 ...

  6. Java反射复习笔记

    目录 反射 获取反射的三种方式: Class对象的功能 获取 成员变量/成员变量们 获取 成员方法/成员方法们 获取构造方法们 获取全类名 Field:成员变量 Method:成员方法 Constru ...

  7. 手写cli

    惠善一的博客:http://huishanyi.club/ 通过命令行工具,初始化团队项目,并生成团队规范代码,一键创建项目,一键生成代码,一键生成功能模块··· 解放双手,从 cli 开始, JSe ...

  8. 【SpringBoot】02.编写HelloWorld

    1.编写一个返回HelloWorld的Controller @Controller public class HelloWorld { @ResponseBody @RequestMapping(&q ...

  9. kudu1.10基于cdh6.3.1搭建

    1.下载kudu依赖: yum -y install cyrus-sasl-plain ntp   2.下载kudu rpm包: wget https://archive.cloudera.com/c ...

  10. tp3.2展示列表

    public function get_list($where=array(),$field="",$order = "id desc"){ $field = ...