Hibernate入门案例
1、下载Hibernate
去官网下载Hibernate,解压缩之后如图:
其中,在lib/required目录下,包含运行Hibernate项目必须的jar包有:
2、创建案例数据库与数据表
create database hibernate;
use hibernate;
##新建表
CREATE TABLE `user` (`user_id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(20) DEFAULT NULL,`password` varchar(20) DEFAULT NULL,PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3、新建项目,搭建Hibernate项目环境
新建web项目,hibernate_demo
先导入hibernate所需jar,lib/required目录下的所有jar包:
再导入mysql数据库驱动jar包:
再导入相关日志jar包:
4、创建实体类User
新建包com.oak.entity
public class User {private Integer userId;private String username;private String password;//getter setter方法略
}
5、Hibernate相关配置文件
Hibernate的相关配置文件分为两种:
- hibernate.cfg.xml:它是Hibernate框架的核心配置文件。
- xxx.hbm.xml:它主要是用于描述类与数据库中的表的映射关系。
5.1 hibernate.cfg.xml核心配置文件
核心配置文件主要是Hibernate框架所使用的,它主要包含了连接数据库的相关信息和Hibernate的相关配置等
要求:核心配置文件应在src目录下,并且名称应是hibernate.cfg.xml
约束:可以在Hibernate的核心jar包——hibernate-core-5.0.7.Final.jar的org.hibernate包下查找到hibernate-configuration-3.0.dtd文件,打开该文件,找到如下内容:
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
下面给出模板:
<?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><!-- 配置关于数据库连接的四个项:driverClass url username password --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///hibernate</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">123456</property><!-- 可以将向数据库发送的SQL语句显示出来 --><property name="hibernate.show_sql">true</property><!-- 格式化SQL语句 --><property name="hibernate.format_sql">true</property><!-- hibernate的方言 :根据配置的方言生成相应的SQL语句--><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- none:不用Hibernate自动生成表create:每次都会创建一个新的表(测试)create-drop:每次都会创建一个新的表,执行程序结束后删除这个表(测试)update:如果数据库中有表,使用原来的表,如果没有表,创建一个新表,可以更新表结构validate:只会使用原来的表,对映射关系进行校验--><property name="hibernate.hbm2ddl.auto">update</property><!-- 配置hibernate的映射文件所在的位置 -加载映射--><!-- <mapping package="..."/> --></session-factory>
</hibernate-configuration>
5.2 xxx.hbm.xml映射配置文件
要求:映射配置文件应与实体类在同一个包下,并且名称为”类名.hbm.xml”,所以我们要在com.iswoak.pojo下新建一个Customer.hbm.xml映射文件
约束:可以在Hibernate的核心jar包——hibernate-core-5.0.7.Final.jar的org.hibernate包下查找到hibernate-mapping-3.0.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 package="com.oak.entity"><!-- name:即实体类的全名table:映射到数据库里面的那个表的名称catalog:数据库的名称--><class name="User" table="t_user" catalog="hibernate"><!-- class下必须要有一个id的子元素 --><!-- id是用于描述主键的 --><id name="userId" column="user_id"><!-- 主键生成策略 --><generator class="native"></generator></id><!-- 使用property来描述属性与字段的对应关系如果length忽略不写,且你的表是自动创建这种方案,那么length的默认长度是255--><property name="username" column="username" length="20"></property><property name="password" column="password" length="20"></property></class>
</hibernate-mapping>
在核心配置文件中添加映射文件的加载
<mapping resource="com/oak/entity/User.hbm.xml"/>
5、测试
public class UserTest {@Testpublic void testSave(){//创建一个User对象User user=new User();user.setUsername("admin");user.setPassword("123");//使用Hibernate的API来完成将Customer信息保存到mysql数据库中的操作Configuration config=new Configuration().configure();SessionFactory sessionFactory=config.buildSessionFactory();Session session=sessionFactory.openSession();//开启事务session.beginTransaction();//操作session.save(user);//事务提交session.getTransaction().commit();session.close();sessionFactory.close();}
}
运行结果:
Hibernate入门案例相关推荐
- Hibernate入门案例及增删改查
一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student {private Integer sid;private Int ...
- 杨老师课堂之JavaEE三大框架Hibernate入门第一课
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/kese7952/article/details/80998421 本篇任务 1. 使用Hiberna ...
- Hibernate入门这一篇就够了
前言 本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门,相信你们看了就会使用Hibernate了! 什么是Hibernate框架? Hibernate是一种ORM框架,全 ...
- Hibernate——入门
Hibernate是什么? Hibernate是一个框架(framework): Hibernate是一个ORM框架(Object Relation Mapping,对象关系映射): Hibernat ...
- 【Quarkus】像子弹一样飞的启动速度之入门案例
- 好记性不如烂笔头,------------在我的小仓库. 介绍 Quarkus是专为无服务器应用程序交付而设计的一个全栈Kubernetes原生Java框架.它与流行的 Java 框架.标准和库( ...
- SSH Chapter 04 Hibernate 入门
SSH Chapter 04 Hibernate入门 笔记 Hibernate 知识体系图: 本章目标: 理解类和表的映射关系 掌握单表的增删改 掌握按主键查询 理解持久化对象的状态及其转换 技术内容 ...
- Springboot入门案例教程
从springboot的入门案例中,我们可以体会到springboot的便捷之处,使用Spring Initializer创建一个项目,然后写一个controller层就可以运行起来,我们啥也没配 ...
- SpringDataJpa系列一之初识及入门案例搭建
本文章参考文档为<SpringDataJpa从入门到精通> 首先, 我觉得入门SpringDataJpa的话, 我们首先要理清楚. JPA.Hibernate和SpringDataJpa的 ...
- Hibernate入门经典实例
http://blog.csdn.net/yidamr/article/details/8755401 hibernate是开源的,用于封装数据访问层的组件,称为:数据访问层框架(持久层框架) 写一个 ...
- JPA入门案例完成增删改查
目录 一.ORM思想 二.JPA规范 三.搭建JPA的基础环境 1.创建数据库表 2.创建Maven工程导入坐标 3.创建JPA的核心配置文件 4.编写实体类,配置映射关系 四.入门案例--增删改查 ...
最新文章
- Android 事件分发 简单学
- BZOJ 4152: [AMPPZ2014]The Captain(最短路)
- 【运筹学】表上作业法 ( 求初始基可行解 | 最小元素法 )
- 从零开始Code Review
- css布局方式_网页布局都有哪种?一般都用什么布局?
- mysql外部关联视图_MySQL数据库 : 自关联,视图,事物,索引
- qscoj:喵哈哈村的冒菜店(线段树区间合并)
- 每日算法系列【LeetCode 153】寻找旋转排序数组中的最小值
- win10 预览版启用 Hyper-V 虚拟机 装 boot2docker找不到菜单按钮问题
- python中match函数的用法_python repython re.match函数怎么来使用
- python open file失败_python open打开文件失败原因及解决办法
- 解决:无法加载文件 C:\Users\user\AppData\Roaming\npm\npx.ps1,因为在此系统上禁止运行脚本 。
- 用blender环绕物体拍摄
- Qt编写安防视频监控系统5-视频回放
- 机器学习中的线性代数之矩阵求导
- LeetCode 61-70题 这是动态规划合集啊?受宠若惊
- Nginx是干什么的
- 基于哈工大LTP句子主干提取
- 计算机乡村少年宫教案,少年宫计算机组教案 (精选可编辑)
- Matlab中angle函数使用
热门文章
- android studio for android learning (二十 )android中this、context等关键概念理解全解
- 【BZOJ 1103】大都市【dfs序上建立树状数组、维护路径前缀和】
- 7 ida pro 网盘_7月上市新车汇总 日产轩逸领衔 自主高端红旗HS7最具潜力
- cv python 画直线_Python进阶之Matplotlib入门(一)
- 素数猜想对 c语言,1007 素数对猜想 (20 分)(C语言实现)
- 创新课程管理系统——测试心得
- 如何使用火狐下的两款接口测试工具RESTClient和HttpRequester发送post请求
- java封装的概念学习笔记
- (HDU)1089 --A+B for Input-Output Practice (I)(输入输出练习(I))
- SQL语法 之 基本查询