您的位置:首页 > 数据库 > Oracle

Hibernate中日期(Date)类型 与oracle中日期的映射处理

2012-07-19 19:58 225 查看
今天第一次使用Hibernate做持久化层 不得不承认 用的真的很省事 省略了很多需要操心的事情 .

如:连接打开关闭 sql代码 各种异常 方法调用 等等

但是这种安逸带来的不安全感也是有的 因为底层sql语句不受控制了

然后呢 我以前处理日期实体声明的都是String类型 然后通过sql语句 to_date(s,'yyyy-MM-dd')

现在呢 ?

很不和谐的给我来个类型转换异常

org.hibernate.exception.DataException: Could not execute JDBC batch update


Caused by: java.sql.BatchUpdateException: ORA-01861: 文字与格式字符串不匹配

错的很显然 字符串无法直接插入数据库的date类型字段中


很惆怅呀 00.


没辙了 想点子呗 立马改回Date类型 修改相关映射文件


但是赋值的时候又纠结了

for example


假设我想指定插入日期为 1990-09-03


玩不了了 怎么都不大好处理


Date date = new Date();


果断问了下同学 因为那伙计以前用JDBC的时候就一直用Date类型


得知可以用SimpleDateFormat类进行字符串日期的格式化


[b]看了下SimpleDateFormat的方法 有个parse(String)方法返回Date对象 有戏!
[/b]

new SimpleDateFormat("yyyy-MM-dd").parse("2008-10-25");


执行save()操作 插入成功!

接下来执行读取数据库操作


[b]但是要求打印如 1990年-9月-3日数据显示
[/b]

new SimpleDateFormat("yyyy年-MM月-dd日").format(e.getInvoice_date());


显示结果1990年-9月-3日

注 : SimpleDateFormat 的format(Object o);无法直接格式化字符串 






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: