Hibernate 教程(二)[Hibernate对象的,xml配置,注解配置]
准备
- 数据库建表(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();}}
- 新建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配置,注解配置]相关推荐
- (继续搬)struts日期格式的转换以及hibernate中session的关闭在xml中的配置
1.struts日期格式的转换package cn.sxx.utils;import java.text.ParseException; import java.text.SimpleDateForm ...
- JAVA日记之mybatis-3一对一,一对多,多对多xml与注解配置 ----喝最烈的酒.
1.Mybatis多表查询 1.1 一对一查询 1.1.1 一对一查询的模型 用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户 一对一查询的需求:查询一个订单,与此同时查询出该订单 ...
- 基于XML及注解配置方式实现AOP及aspectJ表达式
aspectJ表达式结构 切入点表达式 execution (* com.sample.service.impl...(..)) 1.execution(): 表达式主体. 2.第一个号:表示返回类型 ...
- Hibernate教程– ULTIMATE指南(PDF下载)
编者注:在本文中,我们提供了全面的Hibernate教程. Hibernate ORM(简称Hibernate)是一个对象关系映射框架,它有助于将面向对象的域模型转换为传统的关系数据库. Hibern ...
- Hibernate教程
Hibernate教程 最近我写了很多hibernate教程.Hibernate是当前市场上最好的Java ORM工具之一.所以这篇文章就像是hibernate教程和示例的所有帖子的索引.您可以按顺序 ...
- hibernate教程_Hibernate教程
hibernate教程 Recently I have written a lot of hibernate tutorial. Hibernate is one of the best Java O ...
- matlab初学者教程_初学者的Hibernate教程
matlab初学者教程 Welcome to the Hibernate tutorial for Beginners. Hibernate is one of the most widely use ...
- spring IOC基本配置(xml配置和注解配置)
目录 Spring IOC IOC是什么 IOC可以做什么 依赖注入 IOC和DI IOC容器 Bean 配置IOC容器 spring ioc 依赖 XML配置 实例化容器 使用容器 xml配置详解 ...
- hibernate教程--常用配置和核心API详解
一.Hibernate的常用的配置及核心API. 1.1 Hibernate的常见配置: 1.1.1.核心配置: 核心配置有两种方式进行配置: 1)属性文件的配置: * hibernate.prop ...
最新文章
- opencv-python图像处理之磨皮相机
- cloudera manage 4.8.6做hive元数据库主从同步后
- centos恢复图形界面_centos图形界面的开启和关闭
- Mysql取上一条,下一条
- 【机器学习】漫谈特征缩放
- linux命令行大全 笔记,《Linux命令行大全》读书笔记
- python怎么写中文至excel_Python 解决中文写入Excel时抛异常的问题
- #数组元素相乘_C++ 矩阵相乘
- SSM excel文件的导入导出基于apache poi
- Python绘制用于学术论文投稿的黑白图片
- c语言pow为什么溢出,c – GMP pow中的溢出处理
- 阿卡迪亚大学计算机专业好考吗,考上阿卡迪亚大学有多难?
- 【洛谷P1516】青蛙的约会
- iOS apple 登录
- js 计算两个日期之间相差的天数,并适配 Ios
- 计算机网络管理员绩效考核,网络工程师专业考核方案
- 计算机 90学时培训总结,90学时培训心得体会(通用5篇)
- 【转】48个诡异心理学
- 弧齿锥齿轮零件图_格利森弧齿锥齿轮的装配与调整
- 2022.9.15 第1次周报
热门文章
- C++系列: 嵌套命名空间
- 《Essential C++ 中文版》 读书笔记及习题解答
- 课程作业1-数据预处理以及 python对函数求导
- 任务41:Individual authentication 模板
- 上大学要学些啥?干些啥?
- 新寻仙最新服务器,寻仙合服查询系统
- 电气工程及其自动化学python有用吗_电气工程及其自动化专业个人技能怎么写
- Adobe Flash player是什么,是不是上网一定要安装?
- Jenkins出现一个错误 无法连接到Jenkins如何解决
- java kill线程_如何优雅的 kill 线程