当前位置: 代码迷 >> J2EE >> javabean的字段类型是Date 这就是说数据库的类型也要设置为Date吗 表单的数据从前端来的默认都String 要自己手动转成Date吗
  详细解决方案

javabean的字段类型是Date 这就是说数据库的类型也要设置为Date吗 表单的数据从前端来的默认都String 要自己手动转成Date吗

热度:45   发布时间:2016-04-17 23:05:34.0
javabean的字段类型是Date 那么数据库的类型也要设置为Date吗 表单的数据从前端来的默认都String 要自己手动转成Date吗
javabean的字段类型是Date    那么数据库的类型也要设置为Date吗  表单的数据从前端来的默认都String  要自己手动转成Date吗
------解决思路----------------------
你用的什么框架啊?Date有两种,一个是java.util.Date一个是java.sql.Date。反正关于时间格式这块要小心,我之前总是这里出问题,而且很不好改
------解决思路----------------------
用过hibernate的应该都知道,hinbernate用映射生成的实体类中的Date都是util下的。所有不用纠结于用util还是sql。
你的问题主要在于Date和String之间的转换而已,什么Date类型无所谓。
比较好用的推荐使用SimpleDateFormat类去处理java.text包下的直接自动补齐就出来了。
用法
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //后边的格式自己定
String nowString = sdf.format(new Date());    //将日期类型转化为字符串
Date nowDate = sdf.parse(now);        //将字符串转化为日期类型

好用给分
------解决思路----------------------

朋友,首先你要看你数据库定义的那个时间,是时间类型还是就是char类型的。
一般如果就是时间的话,数据库是定义时间类型也就是date.
在java里面往数据库存储时间类型的时候,首先要把java本身的java,util.date改成java.sql.date,数据库只能看懂sql.date,并不能看懂java的util.date。
所以
有两种方法解决:
1.直接把接收到的字符串使用java.sql.date.valueOf(String),把String转换成对应的Sql时间
2.使用 SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(String);
System.out.println(new java.sql.Date(date.getTime()));
把时间字符串先转换成util.date 然后在转换成sql.date发送给数据库

  相关解决方案