【idea2020.1.1】
hibernate是应用在DAO层的框架,之前用的DBUtils功能类似
【区分–>JavaEE的三层架构和MVC思想:
JavaEE三层结构:web层、service层、dao层;
MVC思想 m:模型,v:视图,c:控制器】

搭建环境步骤:

  • 找到jar包
  • 新建JavaWeb项目
  • 往项目中导入jar包
  • 新建实体类
  • 创建实体类和数据库表的映射文件
  • 创建hibernate的核心配置文件
  • 测试

找到jar包

jar包获取:http://hibernate.org/orm/releases/

我用的是hibernate5.2
【链接:https://pan.baidu.com/s/1-OzVeT-6JDIYMy2ab3alXg
提取码:gsjz】
在网站上获取:以5.5为例
step1:

step2:进入之后往下滑动,选择自己想要的版本download

下载好的是压缩包的形式,解压后打开

required文件夹下是hibernate需要的jar包。

新建JavaWeb项目

其实这一步应该是第一步,不过问题不大
https://blog.csdn.net/qq_44641943/article/details/118379496
这是我建项目的步骤

往项目中导入jar包

step1
在WEB-INF下新建两个文件夹,classes用来放生成的class文件,lib用来放项目依赖的jar包(严格来说是,这个模块需要用的jar包)
【新建的只是普通文件夹】

step2
把hibernate需要的jar包和数据库连接需要的jar包复制到lib文件夹下之后,



选中lib之后,就会出现这一行,选中–>Apply

就可以看到导入的jar包如下图

关于classes文件夹如下,Apply即可

新建实体类

新建一个JavaBean,不要忘了setter、getter方法
(cid其实对应着主键)

创建实体类和数据库表的映射文件

使用hibernate时候,不需要自己手动创建表,hibernate帮助创建,怎么创建?答:使用配置文件完成配置实体类和数据库表一一对应关系(映射关系)。
配置文件是xml格式的,idea中new里找不到xml格式的文件,需要自己手动创建。
idea2020.1新建xml文件

映射配置文件名称和位置没有固定要求,但常用 “实体类名称.hbm.xml” (hbm : hibernate mapping)格式命名,且在实体类所在包里面创建
因为配置文件是xml格式的,所以在文件中需要引入xml约束,约束有两种,dtd和schema
这里需要引入的是dtd约束,引入的dtd约束在哪里找?【下方已放需引入的dtd约束部分】
第一步下载的压缩包解压之后

E:\hibernate\hibernate-release-5.2.18.Final\hibernate-release-5.2.18.Final\project\hibernate-core\src\main\resources\org\hibernate


把这个文件用写字板打开,建议不用记事本

把红框内的部分复制到自己新建的xml文件中,就是引入了dtd约束
【附红框内的内容】

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

接下来配置映射文件
这是我的整个的映射文件,已附详细注释

<?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><!-- 1 配置类和表对应class标签name属性:实体类全路径(包名+类名)【为防止写错,选中实体类的类名,右键,Copy Reference,即已复制该类的全路径】table属性:数据库表名称,自己起个名字--><class name="com.hiber.bean.Client" table="t_Client"><!-- 接下来配置类中属性和表中的字段对应--><!-- 2 配置实体类id和表id对应hibernate要求实体类有一个属性唯一值hibernate要求表有字段作为唯一值--><!-- id标签name属性:实体类里面id属性名称column属性:生成的表字段名称--><id name="cid" column="cid"><!-- 设置数据库表id增长策略native:生成表id值就是主键自动增长--><generator class="native"></generator></id><!-- 配置其他属性和表字段对应name属性:实体类属性名称column属性:生成表字段名称--><property name="cName" column="cName"></property><property name="cTelNum" column="cTelNum"></property><property name="cAddress" column="cAddress"></property></class>
</hibernate-mapping>

创建hibernate的核心配置文件

核心配置文件格式xml,但是核心配置文件名称和位置固定的

  • 位置:必须src下面
  • 名称:必须 hibernate.cfg.xml(cfg: configuration配置)

引入dtd约束,与上一步的dtd文件在同一个地方


附内容:

<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

hibernate操作过程中,只会加载核心配置文件,其他配置文件不会加载,也就是说上一步的映射配置文件不会被加载!所以,需要把映射配置文件引入到核心配置文件中
【需要自己手动创建数据库!】
这是我的 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><session-factory><!-- 配置数据库信息 --><!--下面的数据库信息的配置在哪里找?E:\hibernate\hibernate-release-5.2.18.Final\hibernate-release-5.2.18.Final\project\etc找到hibernate.properties这个文件(文件里是键值对的形式)下面四个分别是数据库驱动(务必引入数据库驱动的jar包)url,下面是个省略的写法,完整的是jdbc:mysql://localhost:3306/hibernate_test(这是数据库名称)数据库用户名数据库密码--><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///hibernate_test</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">123456</property><!-- 配置hibernate信息 --><!-- 输出底层sql语句 --><property name="hibernate.show_sql">true</property><!-- 输出底层sql语句格式 --><property name="hibernate.format_sql">true</property><!-- hibernate帮忙创建表是在配置了下句之后update: 有表,更新,没表,就创建--><property name="hibernate.hbm2ddl.auto">update</property><!-- 配置数据库方言 --><property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property><!-- 把映射文件放到核心配置文件中 --><mapping resource="com/hiber/bean/client.hbm.xml"></mapping></session-factory>
</hibernate-configuration>

【注:配置数据库方言那里,需要是MySQL5Dialect。自己可以试一下MySQLDialect 和 MySQL5Dialect 的区别,控制台会输出建表的sql语句,可以对比一下这两种有什么区别;结果就是MySQLDialect 无法创建数据表,还是希望大家自己尝试一下】
【关于引入映射配置文件那里,可以按住ctrl,单击,能跳转就是配置对了】

至此,所有的配置结束!


接下来,

测试

写个测试类

package com.hiber.bean;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;public class HibernateTest {@Testpublic void testAdd(){//第一步 加载hibernate核心配置文件// 到src下面找到名称是hibernate.cfg.xml//在hibernate里面封装对象Configuration cfg = new Configuration();cfg.configure();//第二步 创建SessionFactory对象//读取hibernate核心配置文件内容,创建sessionFactory//在过程中,根据映射关系,在配置数据库里面把表创建SessionFactory sessionFactory = cfg.buildSessionFactory();//第三步 使用SessionFactory创建session对象// 类似于连接Session session = sessionFactory.openSession();//第四步 开启事务Transaction tx = session.beginTransaction();//第五步 写具体逻辑 crud操作//添加功能Client client = new Client();client.setcName("小李");client.setcTelNum("6666666");client.setcAddress("北京");//调用session的方法实现添加session.save(client);//第六步 提交事务tx.commit();//第七步 关闭资源session.close();sessionFactory.close();}
}

最终的结果:
控制台输出创建表和添加数据的sql语句

红框的部分就是上边提到的数据库方言那里两种不同配置产生差异的地方。
同时,数据库里表已经被创建,数据已被添加

【不知道有没有人和我一样遇到添加到数据表里的中文数据是乱码的情况】
我的解决方法:
在hibernate核心配置文件中的url处添加:?characterEncoding=utf8

如果不成功的话,把数据库的属性设置一下,这样应该就没问题了!

【之前做的网站项目中,就经常遇到中文乱码的问题,一般从网页输入到后端代码的中文数据可以写个过滤器,操作数据库的话,最好参照上边写的,只是个人总结的,可能有所偏差】


至此,测试成功结束!(这只是测试,平常写代码的时候不要按照测试的那种方法写,之后更新实用的CRUD写法)

【入门级】Hibernate环境搭建相关推荐

  1. 简单的hibernate环境搭建、自动生成model/配置/hibernate.xml配置文件

    自己亲测的东西才是最有效果的,下面贴出整个编写的过程. 1 hibernate环境搭建,这个博客非常给力:http://www.111cn.net/wy/js-ajax/93142.htm 需要用到的 ...

  2. Hibernate环境搭建以及HelloWorld

    Hibernate是 Java 领域中使用非常广泛的持久化框架.下面使用eclipse搭建并测试一个HelloWorld程序. 一.安装Hibernate插件 为Eclipse安装Hibernate插 ...

  3. hibernate 环境搭建测试

    对于hibernate的介绍,网络上一搜一堆,恐怕我写的也没前辈总结的好. 这个博主总结的十分好,方便大家欣赏  http://blog.csdn.net/liujiahan629629/articl ...

  4. Struts2+Spring+Hibernate环境搭建

    为什么80%的码农都做不了架构师?>>>    IDE:MyEclipse8.5 Struts2:struts-2.3.20 Spring:spring-framework-4.1. ...

  5. Hibernate 系列 02 - Hibernate介绍及其环境搭建

    引导目录: Hibernate 系列教程 目录 昨晚喝多了,下午刚清醒,继续搞Hibernate.走起. 觉得还行的话,记得点赞哈,给我这个渣渣点学习的动力.有错误的话也请指出,省的我在错误上走了不归 ...

  6. hibernate的环境搭建

    本文以hibernate来操纵mysql数据库,所以在此之前必须确保mysql数据库已经正确安装好... 1.导hibernate包的核心jar包... 2.导hbm.xml文件 3.导hiberna ...

  7. JEECG_3.7开发环境搭建与代码生成器入门级教程-张代浩-专题视频课程

    JEECG_3.7开发环境搭建与代码生成器入门级教程-3088人已学习 课程介绍         针对入门级同学,清晰讲解JEECG开发平台本地环境搭建步骤,针对jeecg的代码生成器做专题使用讲解, ...

  8. hibernate的环境搭建及使用

    文章目录 一.hibernate简介 1.什么是hibernate 2.什么是ORM 二.环境搭建 1.工程环境 2.hibernate映射配置 3.hibernate的核心配置 三.代码测试 1.代 ...

  9. Hibernate 框架(二)(下载及环境搭建)

    一.Hibernate下载 1.通过下面网站进行下载:https://zh.osdn.net/,进入网站如下图所示. 2.单击页面顶部的导航栏中的"下载",即可进入 3.在搜索框中 ...

  10. ssh mysql环境搭建 myeclipse_MyEclipse整合ssh三大框架环境搭载用户注册源码下载

    前言 SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...

最新文章

  1. delphi中关于时间差的实例
  2. 使用Transact-SQL进行数据导入导出方法详解
  3. 开源微服务运行时 Dapr 发布 1.0 版本
  4. input的值提交不上
  5. 漫画:IT人的大阅兵,十分精彩!
  6. linux下文件的创建时间、访问时间、修改时间和改变时间
  7. 报考python工程师要求_国家认证的Python技术工程师有什么能力要求?
  8. 如果给你一个亿,你想去干嘛?各专业的科研狗是这样回答的……
  9. 看嵌入式大神直播,送开发板!
  10. 【教程】VsCode搭建Java开发环境
  11. 车仪表台上的装饰_给车“纹身”贴这些的注意,有人挨罚啦!扣不扣分?!看这里...
  12. 一步一步写算法(之内存)
  13. 突破验证,安装Media Player11.
  14. Question 20171117 Java中的编码问题?
  15. Mac小白入门小技巧
  16. 小猪的Python学习之旅 —— 3.正则表达式
  17. html svg在线画板,很棒的SVG图形(多边形)在线生成器
  18. 微博【黄金分析师吕超】--1.19黄金分析
  19. 互联网的战争--腾讯与360
  20. 看,那些在台风中挣扎的记者们

热门文章

  1. 纪念龙舟杯成功A出一道题啦啦啦啦啦啦啦啦(在更新。。。。)
  2. 个人支付微信支付宝接口
  3. 数据分析常见的英文缩写(一)
  4. 微信小程序——根据当前定位查询附近商家
  5. WINVNC Server详解
  6. GIS(地理信息系统/地理信息科学)怎么评职称?
  7. Red Hat Linux 9.0 网络服务入门
  8. aws lambda_借助AWS Elastic Beanstalk轻松进行Spring Boot部署
  9. 洛谷 P2706 巧克力 题解
  10. 小程序商城源码(jshop安装)