`
qianchengboy
  • 浏览: 48224 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

JDBC 插入时间格式

 
阅读更多

整理一:

这里的一片文章,我个人认为讲解的很详细,有对 java.sql.Date的使用还有困惑的请看。

java.sql.Date 只存储日期数据不存储时间数据

// 会丢失时间数据
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));

//可以这样来处理

preparedStatement.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime()));


//想要得到完整的数据,包括日期和时间,可以这样

java.util.Date d = resultSet.getTimestamp(1);

//这样处理更合适一些,可以避免一些潜在Timestamp 问题

java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());

自己补的话

这样的话:

        往数据库存储的时候可以接收 java.util.Date类型 再用getTime()方法得到代表那个Date对象的long值,再以这个long值 构造一个Timestamp对象 存进数据库中。

       从存数据库里取的时候,可以先得到Timestamp用他的getTime()方法得到long值,再以这个long值构造一个 java.util.Date对象,这样就可以对这个Date对象操作了。不如说 new SimpleTimeFormat("yyyyy-MM-dd HH:mm:ss").format()等等

 

整理二:

用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时重新定义格式。

        Timestamp转化为String: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒 Timestamp now = new Timestamp(System.currentTimeMillis());//获取系统当前时间 String str = df.format(now);         String转化为Timestamp: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = df.format(new Date());
 Timestamp ts = Timestamp.valueOf(time);     整理三:   在 ResultSet中我们经常使用的setDate或getDate的数据类型是java.sql.Date,而在平时java程序中我们一般习惯使用 java.util.Date。因此在DAO层我们经常会碰到这俩种数据类型的相互转换,经过了一个下午的折腾,鄙人对两者的转换方法做出了小小总结,希 望大家不吝指教。
两者的关系
java.lang.Object
    |
    +---java.util.Date
            |
            +----java.sql.Date
 
从这个图中我们可以知道java.sql.Date是从java.util.Date继承过来的。

相互转换
1. 使用getTime()函数
这两个类都提供了getTime()函数,用于返回对应的毫秒数(long类型)。利用这个函数可以实现转换:
    java.util.Date utilDate = new java.util.Date(sqlDate.getTime());   // sql -> util
    java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());   // util -> sql

2. 使用SimpleDateFormat类实现转换
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。
SimpleDateFormat dateFormat = new SimpleDateFormate("yyyy-MM-dd HH:mm:ss");
java.util.Date utilDate = dateFormat.parse(sqlDate.toString());

3. 直接转换
由于java.sql.Date是从java.util.Date中继承过来的,所以可以直接用:
utilDate = sqlDate;

4. 另类获得日期的方法:
SimpleDateFormat sy=new SimpleDateFormat("yyyy");
SimpleDateFormat sm=new SimpleDateFormat("MM");
SimpleDateFormat sd=new SimpleDateFormat("dd");
String syear=sy.format(date);
String smon=sm.format(date);
String sday=sd.format(date);

ps: java.util.Date类中的getYear()要加上1900才可得到实际值,getMonth()则要加上1
  

分享到:
评论

相关推荐

    jdbc连接数据库的方式2

     如果成批地处理插入和更新操作,就能够显著地减少它们所需要的时间。Oracle提供的Statement和 CallableStatement并不真正地支持批处理,只有PreparedStatement对象才真正地支持批处理。我们可以使用addBatch()和...

    通用的jdbc增删改查

    通用的jdbc增删改查,仅仅只是两个通用的方法,利用反射和泛型

    JDBC连接oracle数据库测试

    JDBC连接oracle数据库的测试,每隔20s连接一次后断开,并将连接时间、耗时和连接结果输入一个txt文件。用于测试数据库的稳定性

    jdbc操作文档,数据库基本操作文档集合

    add_months(日期值,给定的月数):在制定日期上加上指定的月数,求出之后的日期 next_day(日期值,星期):指定日期后的星期对应的新日期 last_day(日期值):返回指定日期所在月份的最后一天 日期进行加减的一些规律...

    Java_JDBC由浅入深

    6.2 日期类型 34 6.3 CLOB类型 36 6.4 BLOB类型 39 6.5 其他数据类型 41 第七节 DAO设计模式详解 41 7.1 实际项目中如何使用JDBC 41 7.2 DAO设计模式简介 42 7.3 DAO设计模式的实现 42 7.4 DAO设计模式与工厂模式的...

    JDBC连接MySQL数据库批量插入数据过程详解

    主要介绍了JDBC连接MySQL数据库批量插入数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    学生管理系统Swing+Java+JDBC,(原创)

    该系统对学生进行管理,包含有学生的基本信息(包括学号、所选专业、入学时间姓名、年龄、性别、籍贯、民族、身份证号、联系方式、家庭住址、照片、备注)以及各科成绩及总分 2 .界面美观,操作方便,错误将弹出错误...

    spring boot+jdbc+kafka

    1.进入某个页面,通过ajax将用户的操作系统、浏览器版本、ip地址、页面停留时间(假设页面正常关闭)信息发送到kafka。 2.服务端订阅kafka中的浏览行为信息,批量插入数据库 3.基于springboot开发

    jdbc-specification:JDBC 4.2 Specification(JSR 221).《JDBC 4.2 规范》中文翻译

    JDBC 4.2 Specification(JSR 221).《JDBC 4.2 规范》中文翻译。...利用业余时间对此进行翻译,并在原文的基础上,插入配图,图文并茂方便用户理解。如有勘误欢迎指正,提问。如有兴趣,也可以参与到

    基于mvc,使用jdbc连接数据库的注册登录

    d)数据库需满足记录用户登录时间以及用户ID。 e)用户通过简单界面输入用户名密码进行登录,登录成功则记录于记录表,提示用户登录成功,然后跳转至登录成功页面。如果登录失败,提示用户登录失败。

    JDBC实验报告.doc

    实验报告 "学院 "计算机学院 "班级 " "学号 " "姓名 " " "课程名称 "Java程序设计 "实验日期 " " "实验名称 "数据库应用开发 "成绩 " " "实验目的:深入理解JDBC数据库驱动程序的概念,掌握JDBC提供的访问数据库相 ...

    Java-Web程序设计实战-第8章-JDBC详解.pptx

    ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC,因为ODBC推出的时间要比JDBC早,所以大部分数据库都支持通过ODBC来访问。 SUN公司提供了JDBC-ODBC这个驱动来支持像Microsoft Access之类的数据库...

    java+applet+JDBC实现家庭理财系统(源码+数据库)

    java+applet+JDBC实现家庭理财系统(源码+数据库) 一、功能描述 修改密码:单击修改密码,则直接输入新的密码,然后确定就可以了; 修改数据:单击修改数据,然后选择要修改的对象的序号,再按需要修改; 删除数据:...

    JDBC:数据库操作中的日期精度丢失解决办法

    NULL 博文链接:https://xusweeter.iteye.com/blog/856312

    MySQL插入时间差八小时问题的解决方法

    解决MySQL插入时间差八小时问题 一般 jdbc url中 需要添加几个参数 , 大多数博客给的教程都是 useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC 这几个参数, 配置结果为: jdbc:mysql://...

    时间计算工具0.2.4.r1(内包含windows、linux、OSX 10.10).zip

    欢迎使用时间计算小工具0.2.4.r1:这个小工具可以根据自己输入的时间段长,累加计算总共是多长时间,并格式化标准进位世纪(由于时间段中的月日的关系不固定,为保证数值的精确,所以不进行日到月的进位格式化)\n\n...

    这个员工管理系统是使用 Java 创建的,带有用于数据库集成的 SQL 和 JDBC

    这个员工管理系统是使用 Java 创建的,带有用于数据库集成的 SQL 和 JDBC 以及由 Swing 组件制成的 GUI。 登录页面 登录到您的帐户上HR side或Non HR侧根据您的帐户访问权限级别 人力资源功能包括: 员工详情 员工...

    matlab信任模型代码-atsd-jdbc:用于Axibase时间序列数据库的JDBCType4驱动程序

    JDBC驱动程序使Java应用程序可以使用SQL从Axibase时间序列数据库读取和写入时间序列数据。 读取数据 要从数据库检索记录,请按照中提供的查询语法和示例执行SELECT语句。 要从数据库读取数据,必须授予该用户: 角色...

    银行柜员业务绩效考核系统的设计与实现.zipJSP, MySQL, JDBC, B/S

    银行柜员业务绩效考核系统的设计与实现 业务绩效考核系统主要目的是使绩效考核信息管理清晰化,基本功能包括:权限处理模块、输入模块、处理模块、统计输出模块、...按日期查询,可以查询到该日期本合作银行每位柜员

    jsp+servlet+jdbc实现对数据库的增删改查

    一、JSP和Servlet的简单介绍 1、Servlet和JSP简介: Java开发Web应用程序时用到的技术主要有两种,即Servlet和JSP,Servlet是在服务器端执行的... 而JSP则以HTML页面为主,需要写Java代码时则在页面中直接插入Java代

Global site tag (gtag.js) - Google Analytics