在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类型字段中的主要内容,如果未能解决你的问题,请参考以下文章

JAVA里面如何将字符串日期插入到MYSQL数据库

如何才能把java日期类型存入oracle数据库

将excel中数据用JAVA代码导入到oracle中,遇到日期类型应该怎么处理!?

Oracle 如何将“26-9月 -17 06.46.00.000000000 下午”字符串转换成标准日期格式

Oracle数据库以date类型保存日期时,Java中用哪个类对应数据库的date类型?

JAVA中存文件到ORACLE数据库里怎么做?