hibernate中java.util.Date类型映射

从零搭建宝兰德BES单机版:分离式安装、环境变量配置到控制台访问的避坑指南 本文详细介绍了从零搭建宝兰德BES单机版的完整流程,包括分离式安装、环境变量配置和控制台访问的避坑指南。针对中间件安装部署中的常见问题,提供了账号规划、JDK配置、实例创建和防火墙设置等实用解决方案,帮助开发者和运维人员高效完成BES中间件的部署工作。 阅读详情
 

 

在Hibernate中对于java.util.Date类型的映射为:

 

java类型Hibernate类型Mysql类型
java.util.Date、java.sql.Date
date
DATE
java.util.Date、java.sql.Time
time
TIME
java.util.Date、java.sql.Timestamp
timestamp
TIMESTAMP

 

 

如果使用timestamp作为Date类型映射时,具体代码如下:

Java代码
  1. public class User {   
  2.     private String userPK;   
  3.     private String userID;   
  4.     private String password;   
  5.     private String nickname;   
  6.     private boolean state;   
  7.     private boolean role;   
  8.     private Date registerDate;   
  9.     private int points;   
  10.     public String getUserPK() {   
  11.         return userPK;   
  12.     }   
  13.     private void setUserPK(String userPK) {   
  14.         this.userPK = userPK;   
  15.     }   
  16.     public String getUserID() {   
  17.         return userID;   
  18.     }   
  19.     public void setUserID(String userID) {   
  20.         this.userID = userID;   
  21.     }   
  22.     public String getPassword() {   
  23.         return password;   
  24.     }   
  25.     public void setPassword(String password) {   
  26.         this.password = password;   
  27.     }   
  28.     public String getNickname() {   
  29.         return nickname;   
  30.     }   
  31.     public void setNickname(String nickname) {   
  32.         this.nickname = nickname;   
  33.     }   
  34.     public Date getRegisterDate() {   
  35.         return registerDate;   
  36.     }   
  37.     public void setRegisterDate(Date registerDate) {   
  38.         this.registerDate = registerDate;   
  39.     }   
  40.     public int getPoints() {   
  41.         return points;   
  42.     }   
  43.     public void setPoints(int points) {   
  44.         this.points = points;   
  45.     }   
  46.     public void setState(boolean state) {   
  47.         this.state = state;   
  48.     }   
  49.     public boolean getState(){   
  50.         return this.state;   
  51.     }   
  52.     public void setRole(boolean role) {   
  53.         this.role = role;   
  54.     }   
  55.     public boolean getRole(){   
  56.         return this.role;   
  57.     }   
  58. }  
public class User {
	private String userPK;
	private String userID;
	private String password;
	private String nickname;
	private boolean state;
	private boolean role;
	private Date registerDate;
	private int points;
	public String getUserPK() {
		return userPK;
	}
	private void setUserPK(String userPK) {
		this.userPK = userPK;
	}
	public String getUserID() {
		return userID;
	}
	public void setUserID(String userID) {
		this.userID = userID;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getNickname() {
		return nickname;
	}
	public void setNickname(String nickname) {
		this.nickname = nickname;
	}
	public Date getRegisterDate() {
		return registerDate;
	}
	public void setRegisterDate(Date registerDate) {
		this.registerDate = registerDate;
	}
	public int getPoints() {
		return points;
	}
	public void setPoints(int points) {
		this.points = points;
	}
	public void setState(boolean state) {
		this.state = state;
	}
	public boolean getState(){
		return this.state;
	}
	public void setRole(boolean role) {
		this.role = role;
	}
	public boolean getRole(){
		return this.role;
	}
}

 映射代码:

 

Xml代码
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC   
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  5. <hibernate-mapping package="org.brucefeng.sinter.domain">  
  6.   <class name="User" table="sinter_user">  
  7.     <id name="userPK" column="userpk" unsaved-value="null">  
  8.         <generator class="uuid.hex"></generator>  
  9.     </id>  
  10.     <property name="userID" type="string" column="userid" unique="true"></property>  
  11.     <property name="password" type="string" column="password"></property>  
  12.     <property name="nickname" type="string" column="name"></property>  
  13.     <property name="state" type="boolean" column="state"></property>  
  14.     <property name="role" type="boolean" column="role"></property>  
  15.     <property name="points" type="integer" column="points"></property>  
  16.     <property name="registerDate" type="timestamp" column="registerdate"></property>  
  17.   </class>  
  18. </hibernate-mapping>  
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.brucefeng.sinter.domain">
  <class name="User" table="sinter_user">
  	<id name="userPK" column="userpk" unsaved-value="null">
  		<generator class="uuid.hex"></generator>
  	</id>
  	<property name="userID" type="string" column="userid" unique="true"></property>
  	<property name="password" type="string" column="password"></property>
  	<property name="nickname" type="string" column="name"></property>
  	<property name="state" type="boolean" column="state"></property>
  	<property name="role" type="boolean" column="role"></property>
  	<property name="points" type="integer" column="points"></property>
  	<property name="registerDate" type="timestamp" column="registerdate"></property>
  </class>
</hibernate-mapping>

 

Java代码
  1. User testUser = new User();   
  2.   
  3. testUser.setRegisterDate(new Date);   
  4.   
  5. session.save(testUser);  
User testUser = new User();

testUser.setRegisterDate(new Date);

session.save(testUser);

 存储结束之后,由数据库中重新查询出此对象:

Java代码
  1. User savedUser = session.load(User.class,id);  
User savedUser = session.load(User.class,id);

 而此时

testUser.getRegisterDate.equals(savedUser.getRegisterDate)返回值为false;

此时可发现test.getRegisterDate().class为java.util.Date,savedUser.getRegisterDate().class为java.sql.Timestamp。查看java的文档可知

java doc 写道
The Timestamp.equals(Object) method never returns true when passed an object that isn't an instance of java.sql.Timestamp, because the nanos component of a date is unknown. As a result, the Timestamp.equals(Object) method is not symmetric with respect to the java.util.Date.equals(Object) method.

 也就是说Timestamp和Date类型并不能进行相等比较的。当然在程序中比较两个时间点的相等性是不切合实际的,但如果一些特殊应用需要比较的话,可以使用其他方法解决。例如:

Java代码
  1. public void setRegisterDate(Date registerDate) {   
  2.         this.registerDate = new Date(registerDate.getTime());   
  3.     }  
public void setRegisterDate(Date registerDate) {
		this.registerDate = new Date(registerDate.getTime());
	}

 这样即可顺利转变类型及值了。但是Hibernate中并没有对java.util.Date类型进行很好的映射,个人也觉得可以不采用Date类型记录时间,可适当考虑Calendar类型。

AIGC在游戏行业的应用:革新游戏开发与体验 AIGC(人工智能生成内容)技术正在深刻改变游戏行业,从开发到体验全面革新。在游戏开发中,AIGC可用于自动生成关卡、角色和剧情,提升开发效率;在资源制作中,通过AI生成场景、角色模型等,降低成本。 阅读详情

相关推荐

从零打造M328晶体管测试仪:硬件DIY与烧录避坑指南

本文是一份详尽的M328晶体管测试仪DIY指南,涵盖从硬件选型、PCB设计、焊接组装到固件烧录的全过程。重点解析了使用AVR单片机与Arduino IDE环境时,如何正确设置熔丝位以避免“白屏”等常见问题,并提供了使用ISP编程器进行烧录的实操步骤与校准方法,帮助电子爱好者成功打造属于自己的高性价比元件测试工具。

weixin_29243063的博客 476

hibernate 中 对于java.util.Date类型的映射

        java类型 Hibernate类型       Mysql类型   java.util.Date、java.sql.Date   date   DATE   java.util.Date、java.sql.Time   time   TIME   java.util.Date、java.sql.Timestamp   time...

十万小时之旅 251

ESP32C6+ESP-IDF5.2实战:基于RS485的ModbusRTU从站开发与调试

本文详细介绍了基于ESP32C6和ESP-IDF5.2开发ModbusRTU从站的实战指南。涵盖硬件连接、协议实现、ESP-Modbus库移植、寄存器映射及调试技巧,帮助开发者快速构建稳定可靠的工业级RS485通信节点,并解决常见通信故障。

play7的博客 1189

hibernate Java 时间和日期类型的 Hibernate 映射

基础知识: 在 Java 中, 代表时间和日期的类型包括: java.util.Date 和 java.util.Calendar. 此外, 在 JDBC API 中还提供了 3 个扩展了 java.util.Date 类的子类: java.sql.Date, java.sql.Time 和 java.sql.Timestamp, 这三个类分别和标准 SQL 类型中的 DATE, TIME 和 ...

iteye_8785的博客 550

gerrit 配置 ----Gitweb集成

此外,为了让用户能够查看任何关于 gitweb 的信息 项目中,用户必须能够阅读所有引用(包括 refs/meta/config,refs/meta/dashboards/*等)。或者,如果Gerrit通过反向代理送达,它可以 为gitweb的链接生成不同的URL(需要的) 在网页服务器上重写为)。Gerrit 代码审查可以管理和生成指向 gitweb 的超链接, 允许用户从Gerrit内容跳转到相同信息, 但由 gitweb 显示。默认为,这是 Linux 发行版上“gitweb”包的常见安装路径。

QuanQuanYuanXin的博客 1406

Matlab 2023b 科研党必备:MOSEK 10.1.25 安装与配置全记录(附License过期解决方案)

本文详细介绍了在Matlab 2023b中安装与配置MOSEK 10.1.25的全过程,特别针对科研用户提供学术许可申请、证书文件部署及环境集成的实用指南。文章还包含常见问题解决方案和性能调优建议,帮助用户高效完成优化计算任务。

weixin_30598225的博客 171

Java时间和日期类型的Hibernate映射

在Java中,代表时间和日期的类型包括:java.util.Date和java.util.Calendar。此外在JDBC API中还提供了3个扩展了java.util.Date类的子类:java.sql.Date,java.sql.Time和java.sql.Timestamp,这三个类分别和标准SQL类型中的 DATE,TIME和TIMESTAMP类型对应。   在标准SQL中,DATE类型表

Alan_Xiang的博客 1万+

基于Spring Boot框架的网上蛋糕销售系统

随着互联网的普及和电子商务的迅猛发展,网上购物已经成为人们日常生活的一部分。蛋糕作为一种受欢迎的食品,其销售市场也逐渐向网络化方向发展。网上蛋糕销售系统能够打破时间和地域的限制,让消费者随时随地浏览和购买蛋糕,同时也为蛋糕商家提供了一个展示和销售产品的平台。该系统的开发旨在提高蛋糕预定和销售的便捷性,节约时间和经济成本,并推动蛋糕市场的进一步发展。开发语言:Java,一种面向对象的编程语言,具有跨平台性、稳定性和安全性等特点,适用于构建大型、复杂的Web应用程序。 框架:Spring Boot,一个基于Sp

2301_81127431的博客 997

hibernate java.util.date 精度_hibernate中java.util.Date类型映射

在Hibernate中对于java.util.Date类型的映射为: java类型 Hibernate类型 Mysql类型 java.util.Date、java.sql.Date date DATE java.util.Date、java.sql.Time time TIME java.util.Date、java.sql.Timestamp timestamp TIMESTAMP 如果使用ti...

weixin_42367454的博客 209

强网杯Web题ezphp解题全记录:利用PHP反序列化与条件竞争拿下服务器

本文详细解析了强网杯Web题目ezphp的解题过程,通过PHP反序列化与条件竞争漏洞的组合利用,成功获取服务器权限。文章深入剖析了反序列化链的构造、文件上传绕过技巧以及条件竞争的实际应用,为CTF选手和Web安全研究者提供了宝贵的实战经验。

weixin_29006187的博客 388

【牛客算法】小美的数组删除

本文分析了小美数组删除问题的解法,提出了一种逆向遍历求MEX的优化算法。该算法通过从数组末尾开始遍历,逐步构建子数组集合,利用MEX的单调性和增量更新特性,在O(n)时间复杂度内计算所有可能删除方案的最小代价。关键设计包括:1)逆向遍历实现MEX状态继承;2)利用HashSet快速判断元素存在;3)动态比较删除前j个元素和删除整个子数组的代价。算法空间复杂度为O(n),适用于大规模数据。代码实现简洁高效,已被验证为同类问题的最优解之一。

字节卷动 1340

hibernate java.util.date 精度_Hibernate映射中 date类型 和 javabean里的java.util.Date变Timestamp的问题...

近期写了一个增删改查的东东,其中修改功能涉及到时间的比较,这个地方发现了一个问题,这个问题在我们的开发环境不存在,但是经过版本管理员发布int之后就出来了。后来发现这个确实也涉及到jdk版本的问题,但是确实也是个问题。首先,在数据库里定义的该时间字段类型是date类型,Hibernate里.hbm.xml文件中orm映射的是java.util.Date,javabean里也是java.util....

weixin_32825467的博客 178

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java里变date_Hibernate映射中 date类型 和 javabean里的java.util.Date变Timestamp的问题

近期写了一个增删改查的东东,其中修改功能涉及到时间的比较,这个地方发现了一个问题,这个问题在我们的开发环境不存在,但是经过版本管理员发布int之后就出来了。后来发现这个确实也涉及到jdk版本的问题,但是确实也是个问题。首先,在数据库里定义的该时间字段类型是date类型,Hibernate里.hbm.xml文件中orm映射的是java.util.Date,javabean里也是java.util....

weixin_42519514的博客 346

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Hibernate映射中 date类型 和 javabean里的java.util.Date变Timestamp的问题

近期写了一个增删改查的东东,其中修改功能涉及到时间的比较,这个地方发现了一个问题,这个问题在我们的开发环境不存在,但是经过版本管理员发布int之后就出来了。后来发现这个确实也涉及到jdk版本的问题,但是确实也是个问题。 首先,在数据库里定义的该时间字段类型是date类型,Hibernate里.hbm.xml文件中orm映射的是java.util.Date,javabean里也是java....

weixin_30323961的博客 340

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java时间和日期类型的Hibernate映射类型

在Java中,代表时间和日期的类型包括:java.uitl.Date和java.util.Calendar。此外,在JDBC API中还提供了3个扩展了java.uitl.Date类的子类:java.sql.Date、java.sql.Time和java.sql.Timestamp,这3个类分别和标准SQL类型中的DATE、TIME和TIMESTAMP类型对应。 表11-2列出了Hibernat

1123

关于 hibernate 中的Date 类型

MySQL 中的Date 列,只要用1999-09-09 即能插入。而Oracle 中的Date列,这需要使用to_date 函数来转换。在使用Hibernate 时,bean 中的属性应该为 java.util.Date 类型。在关系映射时会自动与 java.sql.Date进行转换。。。。。。

d2lorder的专栏 876

映射时间(Temporal)类型@Temporal

在进行实体映射时,有关时间日期类型的类型可以是java.sql包下的java.sql.Date、java.sql.Time 和java.sql.Timestamp,还有java.util包下的java.util.Date 和 java.util.Calendar类型。         使用hibernate自动映射过来的是java.util包中的类型.即标注@Temporal注释来说明转化...

篱笆小院 877

Java 时间和日期类型的 Hibernate 映射

在 Java 中, 代表时间和日期的类型包括: java.util.Date 和 java.util.Calendar. 此外, 在 JDBC API 中还提供了 3 个扩展了 java.util.Date 类的子类: java.sql.Date, java.sql.Time 和 java.sql.Timestamp, 这三个类分别和标准 SQL 类型中的 DATE, TIME 和 TIMESTAM

超胆孤侠 450

hibernate对象映射Date数据类型和input datetime使用注意事项

hibernate对象映射Date数据类型 //java.util.Date 就是在除了SQL语句的情况下面使用。结果如:2016-05-23 20:55:30 //java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分 2016-05-23 如果简写成date...

chuichansheng7987的博客 118
上一篇: final、static使用总结
下一篇: C语言 枚举与位运算
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值