labManage项目小结2
来源:互联网 发布:科比生涯场均数据 编辑:程序博客网 时间:2024/05/01 04:00
最近一直纠结的一个问题就是如何讲bean,或者说实体中Date类型的属性,存进数据库中。
数据库中字段类型为Datetime类型。
刚开始找了很多方法。
首先,报的是java.util.Date和java.sql.Date不匹配异常,那首先想到的就是转换。
//首先bean中有一个Date类型对象java.sql.Date d = new java.sql.Date(bean.getDate().getTime());上面代码实现了转换,但是这样 setDate 存入数据库,发现日期是对的,但是时间全为0.
Java的文档真的要仔细查,其实java文档已经写明了,为什么没有时间呢?
一个包装了毫秒值的瘦包装器 (thin wrapper),它允许 JDBC 将毫秒值标识为 SQL DATE
值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数。
为了与 SQL DATE
的定义一致,由 java.sql.Date
实例包装的毫秒值必须通过将小时、分钟、秒和毫秒设置为与该实例相关的特定时区中的零来“规范化”。
为了与数据库Date类型一致,所以java规范也把Date类型做成这样。数据库的Date类型就是没有时间的。Datetime才有时间。
这时,想到了一个类型,Timestamp,我们从数据库拿的时候,想拿时间,就是拿Timestamp才拿到时间。
只要把util.Date转换成Timestamp就Ok了啊。
OK。
java.sql.Timestamp tDate = new java.sql.Timestamp(bean.getDate().getTime);pstmt.setTimestamp(tDate);
就这样一句话,搞定。
当然,也有很多其他方法,还可以数据库直接设计成varchar,或者是long类型,format以后直接存。
还可以这样写。
String str =bean.getDate()+" "+bean.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = sdf.parse(str); java.sql.Timestamp sqlDate = new java.sql.Timestamp(date.getTime()); db.setDate1(sqlDate);都OK。
- labManage项目小结2
- labManage项目小结3
- 最近一个项目LabManage小结
- 项目小结
- 项目小结
- 项目小结
- 项目小结
- 项目小结
- 项目小结
- 项目小结
- 项目小结
- 项目小结
- 项目小结
- 100w项目小结
- 开发嵌入式项目小结
- Ext 项目小结
- 项目管理小结
- 项目知识点小结
- shell 字符串包含关系
- Objective-c的Foundation中常用类3——数组NSArray、NSMutableArray
- 筛法求素数
- prime算法 poj1789
- 新版hpple使用注意点
- labManage项目小结2
- ECMAScript 和 dom
- Codeforces 127C Hot Bath
- java基础知识
- 一名程序员的自我修养
- 返回引用
- 混淆矩阵
- 开源 免费 java CMS - FreeCMS-数据对象-channel
- 嵌入式linux安装sz/rz工具包