使用JDBC操作时间的注意点
2015-11-29 20:55
148 查看
在Mysql数据库中,时间类型有3种
Time 时:分:秒
Date 年:月:日
TimeStamp。年:月:日:时:分:秒
Time
Date
TimeStamp
我们知道,除了Dao层之外我们都是不建议在Bean中java.sql.*;这个包下的所有类。包括上面这三个,即使我们需要操作到时间的时候,也是建议使用java.util.Date这个类的。所以在设计程序持久化时间的时候就会产生一个问题,就是时间类型的转换,转换不好,会导致数据丢失。往往格式转换都是在Dao执行的。
java.sql.Time、java.sql.Date、java.sql.TimeStamp;这三种之一的话。那么我们仅需要在配置文件中配置。
注意到上面的type属性字段了吗。对了我们在写映射文件的时候只需要指定Mysql数据库中的对应字段的类型就可以了。
Time 时:分:秒
Date 年:月:日
TimeStamp。年:月:日:时:分:秒
Time
public Time(int hour, int minute, int second) { super(70, 0, 1, hour, minute, second); }
Date
public Date(int year, int month, int day) { super(year, month, day); }
TimeStamp
@Deprecated public Timestamp(int year, int month, int date, int hour, int minute, int second, int nano) { super(year, month, date, hour, minute, second); if (nano > 999999999 || nano < 0) { throw new IllegalArgumentException("nanos > 999999999 or < 0"); } nanos = nano; }
我们知道,除了Dao层之外我们都是不建议在Bean中java.sql.*;这个包下的所有类。包括上面这三个,即使我们需要操作到时间的时候,也是建议使用java.util.Date这个类的。所以在设计程序持久化时间的时候就会产生一个问题,就是时间类型的转换,转换不好,会导致数据丢失。往往格式转换都是在Dao执行的。
//创建一个java.util.Date的实例对象 Date date =new Date(System.currentTimeMillis()); //格式转换 Timestamp timestamp_sql=new Timestamp(date.getTime()); Time time_sql=new Time(date.getTime()); java.sql.Date date_sql=new java.sql.Date(date.getTime());
Hibernate对日期格式的转换
我们知道,Hibernate极大的方便我们对数据库的访问操作。涉及Bean对象中如果含有java.util.Date对象,而数据库中的保存时间的字段又是java.sql.Time、java.sql.Date、java.sql.TimeStamp;这三种之一的话。那么我们仅需要在配置文件中配置。
<property name="createDate" type="timestamp" column="createDate"></property> <property name="createDate" type="time" column="createDate"></property> <property name="createDate" type="date" column="createDate"></property>
注意到上面的type属性字段了吗。对了我们在写映射文件的时候只需要指定Mysql数据库中的对应字段的类型就可以了。
相关文章推荐
- 第十二周学习总结
- hdoj--2516--取石子游戏(博弈)
- 1026. Table Tennis (30)
- mysql 学习路线(给新手的建议)
- Android之Fragment的基本使用(一)
- git
- 深拷贝与浅拷贝
- How much training data do you need?
- Altium Designer如何批量修改名称,数值,封装
- 【OpenCV学习笔记】1.2图像的基本操作
- 地理信息系统基础算法(三)判断矩形是否包含点
- uva 12563——Jin Ge Jin Qu hao
- Codeforces Educational Codeforces Round 2 A. Extract Numbers
- source not found. debug
- python异常
- pat 1030. Travel Plan (30)
- 自学objective-c,靠什么坚持?
- Android数据存储—— SQL Database
- 爬爬爬之路:UI(十二) 单例 UITabBarController 高级Block的应用
- 栈增长方向与大端/小端问题