springmvc mybatis怎么把mysql的时间格式化

springmvc mybatis怎么把mysql的时间格式化,第1张

方法一:实体类中加日期格式化注解

[java] view plaincopy

@DateTimeFormat(pattern = "yyyy-MM-dd")

private Date receiveAppTime;

如上,在对应的属性上,加上指定日期格式的注解,本人亲自测试过,轻松解决问题!

需要 import orgspringframeworkformatannotationDateTimeFormat;

转换函数位于spring-contextjar包中

方法二:控制器Action中加入一段数据绑定代码

[java] view plaincopy

@InitBinder

public void initBinder(WebDataBinder binder) {

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

dateFormatsetLenient(false);

binderregisterCustomEditor(Dateclass, new CustomDateEditor(dateFormat, true)); //true:允许输入空值,false:不能为空值

……values(#{username, jdbcType=VARCHAR}, #{age, jdbcType=NUMBER}) 在所有可能为空的字段后面加jdbcType=XXX, XXX是这个值的数据类型,比如我上面插入的username是字符串,可能为空,所以加入jdbcType= VARCHAR, 至于jdbcType有哪些类型你可以查看myBatis API 官方文档,上面写的很清楚

不是mybatis不能插入日期,而是你书写的日期格式不对,例如sql server中日期格式可以是字符串'2012-2-2'这种用‘-’分隔的,而oracle的格式却是(我忘了,我也不用啊,一般都是用函数转换,比如to_date('2012-2-2','yyyy-MM-dd') ),所以如果你使用的是拼接式,即$符号,建议使用函数转换后插入,如果你使用的是#{}预编译方式,那么你完全可以传输一个javautilDate的参数对于那个?号即可,mybatis会自动将javautilDate转换成javasqlDate,对于javasqlDate,预编译的statement是可以识别的!所以才能够正确插入!

以spring+mybatis为例

1配置datasource时指定如下信息

2读取properties下的所有配置文件

3jdbcproperties文件内容如下:

因为时间列的值一般选择性较高(即重复值较少),这样查询优化器会先考虑用索引进行检索

除非索引碎片达到一定等级,查询优化器认为表扫描比索引查询快时就不用了

还有,纠正你一点小问题,结束时间不要加00:00:00,这样会将第二天的0点数据也包括在内

虽然概率很低,但情况存在

-------------------

你把列进行转换就用不到索引了,因为转换后的列值无论与数据页还是缓存上存储的都不一致

优化器需要重新扫描表并进行计算,所以一般对列进行函数 *** 作再会慢

以上就是关于springmvc mybatis怎么把mysql的时间格式化全部的内容,包括:springmvc mybatis怎么把mysql的时间格式化、mybatis怎么实现时间段查询、mybatis怎么插入java的时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9528884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存