在java中如何将日期字符串保存到Oracle数据库中对应的Date类型字段中
Posted 一宿君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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中如何将日期字符串保存到Oracle数据库中对应的Date类型字段中的主要内容,如果未能解决你的问题,请参考以下文章
将excel中数据用JAVA代码导入到oracle中,遇到日期类型应该怎么处理!?
Oracle 如何将“26-9月 -17 06.46.00.000000000 下午”字符串转换成标准日期格式