怎么样将java中的date类型插入到mysql的datetime
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么样将java中的date类型插入到mysql的datetime相关的知识,希望对你有一定的参考价值。
测试类里怎么插,jsp怎么插(最好有源码,谢谢!)
mysql的datetime格式很松散,加入是2012-02-02 存进去的格式是20120202,你把它转换成string也可以插入,成date也可以。 参考技术A 将Date类型的值通过SimpleDateFormat类转换成"yyyy-MM-dd HH:mm:ss"这样的字符串就可以了追问可以说的再具体点吗
追答举个例子,表table里有个字段abc是datetime类型的,SQL语句可以这样构造:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date();
String abcValue = sdf.format(now);
String sql = "update table set abc='"+abcValue+"' where ......";
再执行SQL就OK了
在java中如何将日期字符串保存到Oracle数据库中对应的Date类型字段中
前言
我们知道利用JDBC操作数据库时,插入SQL字段是个繁琐的过程,操作起来实际上并不是很复杂,但是在java中总有些字段类型与SQL中的字段类型不匹配,直接导致很烦!!!本文着重讲解如何将日期字符串插入到Orale中对应的Date类型字段中。
注意
Oracle中的Date字段
ResultSet.getDate()
PreparedStatement.setDate()
都是java.sql.Date类型的,所以我们无论怎样转化,最终目标都是要将字符串或者java.util.Date类型转化成java.sql.Date类型
1、首先将字符串转换成java.util.Date
- 用户实体类
package com.ebuy.pojo; import java.io.Serializable; import java.util.Date; public class User implements Serializable { private String userId; private String userName; private String password; private String sex; /** * 出生日期 */ private Date birthday; private String identityCode; private String email; private String mobile; private String address; private int status = 0; private String code; private int role; }
- 我们首先要将我们手动输入的出生日期字符串,转换成java.util.Date类型
//1 首先使用简化日期格式(规定日期包括时分秒的显示形式) SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //输入的出生日期字符串的格式是 yyyy-MM-dd HH:mm:ss(要和SimpleDateFormat规范保持一致) String inputBirthday = "2000-02-03 12:12:24"; //此时已转换为java.util.Date类型 Date string_To_util = sdf.parse(inputBirthday); System.out.println(string_To_util);
- 结果
- 将转换后的日期字符串存入User实体类对象中
User user = new User(); //将转换过的日期字符串存入User实体类对象中() user.setBirthday(string_To_util);
2、将java.util.Date 转为java.sql. Date
- 这一步一般会用在执行SQL语句处
//java.util.Date 转为java.sql. Date(getTime()获取日期的毫秒数) java.sql.Date sqlDate = new java.sql.Date(user.getBirthday().getTime()); System.out.println("sqlDate= " + sqlDate);
- 结果
3、真实场景
- 添加或注册用户的界面
- UserServlet接收表单参数(出生日期)
- 数据访问层实现类中(执行SQL语句处)
到这就成功将一个手动从前端页面输入的日期字符串保存到Oracle数据库中了。
4、如果觉得麻烦,还有一个简单粗暴的方法
- Oracle内置的方法to_date
可将字符串直接转化成java.sql.Date类型,而且转换过的日期可以直接进行比大小
select to_date(‘2004-05-07 13:23:44’,‘yyyy-mm-dd hh24:mi:ss’) from dual - 直接将实体类中的出生日期字段设置为String类型
package com.ebuy.pojo; import java.io.Serializable; import java.util.Date; public class User implements Serializable { private String userId; private String userName; private String password; private String sex; /** * 出生日期(设置为String类型) */ private String birthday; private String identityCode; private String email; private String mobile; private String address; private int status = 0; private String code; private int role; }
- UserServlet层直接接收前端表单页面的的eu_birthday参数即可,无需进行java.util.Date的转换
- 在数据访问层接口实现类出利用to_date(String_value,format_value)直接将字符串转换成java.sql.Date类型(但是要保证前端输入的日期字符串格式个to_date()的规范格式一致)
完事!!!
但是不建议使用!!!
以上是关于怎么样将java中的date类型插入到mysql的datetime的主要内容,如果未能解决你的问题,请参考以下文章