准备

  1. 数据库建表(Hibernate可以自动生成表,和对应字段,但是不能给字段添加注释,所以选择手动建表)
-- 创建表
CREATE TABLE `Event`(
`id` INT AUTO_INCREMENT COMMENT '唯一标识',
`title` VARCHAR(100) COMMENT '标题',
`date` DATETIME COMMENT '时间',
PRIMARY KEY (id)
)COMMENT '事件';-- 插入数据
INSERT INTO `Event`(title, date) VALUES ('标题一', CURRENT_TIME), ('标题二', CURRENT_TIME), ('标题三', CURRENT_TIME);

XML配置

  • 1.新建orm.entity.Event
package orm.entity;import java.util.Date;public class Event {private Long id;private String title;private Date date;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}/*** 重写toString 方便打印对象*/@Overridepublic String toString() {StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("Event {" + "id: "+id+", "+"title: "+title+", "+"date: "+date+ "}");return stringBuilder.toString();}}
  1. 新建HibernateStuConfiguration/src/orm/xml/Event.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 package="orm.entity"><class name="Event" table="Event"><id name="id" column="id"><generator class="increment" /></id><property name="date" type="timestamp" column="date" /><property name="title" /></class></hibernate-mapping>
  • 3.添加的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><!-- 1. 配置数据库信息 --><!-- 2. 配置Hibernate信息 --><!-- 3. 把映射文件放到核心位置 --><session-factory><!-- 1 --><property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property><property name="hibernate.connection.url"><![CDATA[jdbc:mysql://192.168.1.200:3306/Hibernate?useSSL=false]]></property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">123456</property><!-- <property name="hibernate.cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> 禁用二级缓存 --><!-- 2 --><property name="hibernate.show_sql">true</property><!-- 显示SQL语句 --><property name="hibernate.format_sql">true</property><!-- 格式化SQL语句 --><property name="hibernate.hbm2ddl.auto">update</property><!-- 自动更新表,没有就创建 --><property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property><!-- 配置数据库方言 --><!-- 3 --><mapping resource="orm/xml/Event.hbm.xml" /></session-factory>
</hibernate-configuration>
  • 4.测试是否成功
    新建测试类 dao.EventDaoTest
package dao;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;
import org.junit.jupiter.api.Test;import orm.entity.Event;public class EventDaoTest {SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();Session session = sessionFactory.openSession();@Testpublic void test01() {// 使用hql进行查询,后面我会讲到String hql = "from Event";Query<Event> query = session.createQuery(hql, Event.class);System.out.println(query.list());}
}
// 控制台打印
Hibernate: selectevent0_.id as id1_0_,event0_.date as date2_0_,event0_.title as title3_0_ fromEvent event0_
[Event {id: 1, title: 标题一, date: 2018-12-23 13:55:49.0}, Event {id: 2, title: 标题二, date: 2018-12-23 13:55:49.0}, Event {id: 3, title: 标题三, date: 2018-12-23 13:55:49.0}]

配置成功

注解配置

  • 1.修改orm.entity.Event
package orm.entity;import java.util.Date;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;@Entity
@Table(name = "Event")
public class Event {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String title;@Temporal(TemporalType.TIMESTAMP)private Date date;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}/*** 重写toString 方便打印对象*/@Overridepublic String toString() {StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("Event {" + "id: " + id + ", " + "title: " + title + ", " + "date: " + date + "}");return stringBuilder.toString();}}
  • 2.修改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><!-- 1. 配置数据库信息 --><!-- 2. 配置Hibernate信息 --><!-- 3. 把映射文件放到核心位置 --><session-factory><!-- 1 --><property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property><property name="hibernate.connection.url"><![CDATA[jdbc:mysql://192.168.1.200:3306/Hibernate?useSSL=false]]></property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">123456</property><!-- 2 --><property name="hibernate.show_sql">true</property><!-- 显示SQL语句 --><property name="hibernate.format_sql">true</property><!-- 格式化SQL语句 --><property name="hibernate.hbm2ddl.auto">update</property><!-- 自动更新表,没有就创建 --><property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property><!-- 配置数据库方言 --><!-- 3 --><mapping class="orm.entity.Event" /></session-factory>
</hibernate-configuration>
  • 3.测试连接
    运行EventDaoTest
// 控制台输出
Hibernate: selectevent0_.id as id1_0_,event0_.date as date2_0_,event0_.title as title3_0_ fromEvent event0_
[Event {id: 1, title: 标题一, date: 2018-12-23 13:55:49.0}, Event {id: 2, title: 标题二, date: 2018-12-23 13:55:49.0}, Event {id: 3, title: 标题三, date: 2018-12-23 13:55:49.0}]

项目地址

链接:https://pan.baidu.com/s/196kn4MhSr-qQjWmyNLXOkg
提取码:56om

Hibernate 教程(二)[Hibernate对象的,xml配置,注解配置]相关推荐

  1. (继续搬)struts日期格式的转换以及hibernate中session的关闭在xml中的配置

    1.struts日期格式的转换package cn.sxx.utils;import java.text.ParseException; import java.text.SimpleDateForm ...

  2. JAVA日记之mybatis-3一对一,一对多,多对多xml与注解配置 ----喝最烈的酒.

    1.Mybatis多表查询 1.1 一对一查询 1.1.1 一对一查询的模型 用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户 一对一查询的需求:查询一个订单,与此同时查询出该订单 ...

  3. 基于XML及注解配置方式实现AOP及aspectJ表达式

    aspectJ表达式结构 切入点表达式 execution (* com.sample.service.impl...(..)) 1.execution(): 表达式主体. 2.第一个号:表示返回类型 ...

  4. Hibernate教程– ULTIMATE指南(PDF下载)

    编者注:在本文中,我们提供了全面的Hibernate教程. Hibernate ORM(简称Hibernate)是一个对象关系映射框架,它有助于将面向对象的域模型转换为传统的关系数据库. Hibern ...

  5. Hibernate教程

    Hibernate教程 最近我写了很多hibernate教程.Hibernate是当前市场上最好的Java ORM工具之一.所以这篇文章就像是hibernate教程和示例的所有帖子的索引.您可以按顺序 ...

  6. hibernate教程_Hibernate教程

    hibernate教程 Recently I have written a lot of hibernate tutorial. Hibernate is one of the best Java O ...

  7. matlab初学者教程_初学者的Hibernate教程

    matlab初学者教程 Welcome to the Hibernate tutorial for Beginners. Hibernate is one of the most widely use ...

  8. spring IOC基本配置(xml配置和注解配置)

    目录 Spring IOC IOC是什么 IOC可以做什么 依赖注入 IOC和DI IOC容器 Bean 配置IOC容器 spring ioc 依赖 XML配置 实例化容器 使用容器 xml配置详解 ...

  9. hibernate教程--常用配置和核心API详解

    一.Hibernate的常用的配置及核心API. 1.1 Hibernate的常见配置: 1.1.1.核心配置: 核心配置有两种方式进行配置:  1)属性文件的配置: * hibernate.prop ...

最新文章

  1. opencv-python图像处理之磨皮相机
  2. cloudera manage 4.8.6做hive元数据库主从同步后
  3. centos恢复图形界面_centos图形界面的开启和关闭
  4. Mysql取上一条,下一条
  5. 【机器学习】漫谈特征缩放
  6. linux命令行大全 笔记,《Linux命令行大全》读书笔记
  7. python怎么写中文至excel_Python 解决中文写入Excel时抛异常的问题
  8. #数组元素相乘_C++ 矩阵相乘
  9. SSM excel文件的导入导出基于apache poi
  10. Python绘制用于学术论文投稿的黑白图片
  11. c语言pow为什么溢出,c – GMP pow中的溢出处理
  12. 阿卡迪亚大学计算机专业好考吗,考上阿卡迪亚大学有多难?
  13. 【洛谷P1516】青蛙的约会
  14. iOS apple 登录
  15. js 计算两个日期之间相差的天数,并适配 Ios
  16. 计算机网络管理员绩效考核,网络工程师专业考核方案
  17. 计算机 90学时培训总结,90学时培训心得体会(通用5篇)
  18. 【转】48个诡异心理学
  19. 弧齿锥齿轮零件图_格利森弧齿锥齿轮的装配与调整
  20. 2022.9.15 第1次周报

热门文章

  1. C++系列: 嵌套命名空间
  2. 《Essential C++ 中文版》 读书笔记及习题解答
  3. 课程作业1-数据预处理以及 python对函数求导
  4. 任务41:Individual authentication 模板
  5. 上大学要学些啥?干些啥?
  6. 新寻仙最新服务器,寻仙合服查询系统
  7. 电气工程及其自动化学python有用吗_电气工程及其自动化专业个人技能怎么写
  8. Adobe Flash player是什么,是不是上网一定要安装?
  9. Jenkins出现一个错误 无法连接到Jenkins如何解决
  10. java kill线程_如何优雅的 kill 线程