这是我在使用SSM实践过程中遇到的一个问题
我发现在mysql中定义一个类型为date的数据
在实体类中直接定义 private Date date (这里使用的是Util的Date)
因为前端中传入的是String类型的yyyy-MM-dd,需要转码,比较复杂,所以直接用ssm的注解,在private Date date上面加@DateTimeFormat(pattern=“yyyy-MM-dd”)
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date date;
然后建立对应的getset方法即可。
如果直接转换过后插入数据库可以成功,那么就不用看下面的了
使用Util的Date直接传入mysql,需要将date转换成sql.Date.
sql.Date对应的是mysql的date
当初因为不懂这个知识,所以在插入到数据库时直接报错了
所以要将Date进行一下转换
jsp中form表单中写一个<input type="date" name="name"/>
前端传String 的yyyy-mm-dd
在Controller类中接收这个String型的数据,命名为date
然后就可以进行转换
String类型转成Date类型:
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = ft.parse(date);
另外附 Date类型转成String类型:
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String time = ft.format(date);
在将String类型转换成Date类型后,将其再换成sql.Date类型的数据:
java.sql.Date sql_date = new java.sql.Date(date1.getTime());
这里的date1就是Util.Date类型的数据。
这里转换过后就可以利用这个数据进行增删改查了。
有什么不对的地方请大佬们指教。