博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ibatis对日期的处理
阅读量:6071 次
发布时间:2019-06-20

本文共 937 字,大约阅读时间需要 3 分钟。

  最近在项目中出现两种情况(因为项目比较早,经历各个版本的改动,所有设计不一致),第一种:数据库中某一字段为Date类型,对应的bean中的类型为java.util.Date,所有在对应的映射中会出现字段和属性类型不匹配为题;第二种情况为数据库中为Date类型,对应的字符串为String类型,这样在映射时也会出现字符类型不匹配的问题。

  后来查看了相关资料,对于第一种解决办法是:在对于的属性后面加:Date,使其可以映射为数据库的Date类型。如:#last_date:Date#;第二种的解决办法是在第一种的基础上自己考虑得出应用数据库的转换函数,将String类型转为Date类型;如:to_date(#last_date#,"yyyy-mm-dd")。试想一下,如果出现数据库中为字符类型而 bean为Date类型,也可以用to_char()进行转换,不过这种情况应该比较少。

  下面对ibatis中日期和字符串之间的映射做一下总结:

  1. bean中定义为String,数据库字段类型为String,直接查询字段

  此时在ibatis在对结果进行封装时,相当于直接把值转化成了字符串,就像在java中调用了toString方法一样。

  2.bean定义为Date,数据库字段类型为Date,查询使用#last_date:Date#。

  此时在对结果进行封装时得到的是一个DATE对象,注意此时将输出时,它的日期格式是java里面的日期格式,而不是它存放在数据库里面的格式。所有要在字段后面加:Date,如:#last_date:Date#。

  3.bean定义为Date,数据库字段类型为String,查询使用to_char(#last_date#,’yyyy-mm-dd’)

  此时封装的时候就相当于从字符串映射到字符串,输出last_date的格式取决于我们在to_char中设置的格式。

  4.bean定义为String,数据库字段类型为Date,查询使用to_date(#last_date#,’yyyy-mm-dd’)

  此时封装的时候就相当于日期映射到日期,输出last_date的格式取决于我们在to_date中设置的格式。

转载地址:http://luigx.baihongyu.com/

你可能感兴趣的文章
apache的bin目录下的apxs有什么作用? PHP模块加载运行方式
查看>>
并发容器学习——ConcurrentHashMap
查看>>
金融行业工作报告自动生成系统
查看>>
100元买一百只鸡的问题求解之一
查看>>
Android开发初涉遇到的问题(1)  SimpleAdapter
查看>>
记一次JavaWeb网站技术架构总结
查看>>
注入或获取spring上下文的几种方式
查看>>
Java中利用MessageFormat对象实现类似C# string.Format方法格式化
查看>>
Citrix发布新一代远程交付协议,EDT
查看>>
逆思维调用双版本PHP7和5
查看>>
14个坏习惯可能让你丢掉工作
查看>>
unbuntu 修改网卡
查看>>
鸟哥私房菜重温笔记7
查看>>
memset用法详解
查看>>
我的友情链接
查看>>
学习python:练习5.简单红包程序
查看>>
日志轮替简介
查看>>
生成7位不同的随机整数
查看>>
我的友情链接
查看>>
<img src="data:xxx1" style=aaa:'"/onerror=alert(1)//' >
查看>>