整理一:
这里的一片文章,我个人认为讲解的很详细,有对 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
相关推荐
如果成批地处理插入和更新操作,就能够显著地减少它们所需要的时间。Oracle提供的Statement和 CallableStatement并不真正地支持批处理,只有PreparedStatement对象才真正地支持批处理。我们可以使用addBatch()和...
通用的jdbc增删改查,仅仅只是两个通用的方法,利用反射和泛型
JDBC连接oracle数据库的测试,每隔20s连接一次后断开,并将连接时间、耗时和连接结果输入一个txt文件。用于测试数据库的稳定性
add_months(日期值,给定的月数):在制定日期上加上指定的月数,求出之后的日期 next_day(日期值,星期):指定日期后的星期对应的新日期 last_day(日期值):返回指定日期所在月份的最后一天 日期进行加减的一些规律...
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数据库批量插入数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
该系统对学生进行管理,包含有学生的基本信息(包括学号、所选专业、入学时间姓名、年龄、性别、籍贯、民族、身份证号、联系方式、家庭住址、照片、备注)以及各科成绩及总分 2 .界面美观,操作方便,错误将弹出错误...
1.进入某个页面,通过ajax将用户的操作系统、浏览器版本、ip地址、页面停留时间(假设页面正常关闭)信息发送到kafka。 2.服务端订阅kafka中的浏览行为信息,批量插入数据库 3.基于springboot开发
JDBC 4.2 Specification(JSR 221).《JDBC 4.2 规范》中文翻译。...利用业余时间对此进行翻译,并在原文的基础上,插入配图,图文并茂方便用户理解。如有勘误欢迎指正,提问。如有兴趣,也可以参与到
d)数据库需满足记录用户登录时间以及用户ID。 e)用户通过简单界面输入用户名密码进行登录,登录成功则记录于记录表,提示用户登录成功,然后跳转至登录成功页面。如果登录失败,提示用户登录失败。
实验报告 "学院 "计算机学院 "班级 " "学号 " "姓名 " " "课程名称 "Java程序设计 "实验日期 " " "实验名称 "数据库应用开发 "成绩 " " "实验目的:深入理解JDBC数据库驱动程序的概念,掌握JDBC提供的访问数据库相 ...
ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC,因为ODBC推出的时间要比JDBC早,所以大部分数据库都支持通过ODBC来访问。 SUN公司提供了JDBC-ODBC这个驱动来支持像Microsoft Access之类的数据库...
java+applet+JDBC实现家庭理财系统(源码+数据库) 一、功能描述 修改密码:单击修改密码,则直接输入新的密码,然后确定就可以了; 修改数据:单击修改数据,然后选择要修改的对象的序号,再按需要修改; 删除数据:...
NULL 博文链接:https://xusweeter.iteye.com/blog/856312
解决MySQL插入时间差八小时问题 一般 jdbc url中 需要添加几个参数 , 大多数博客给的教程都是 useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC 这几个参数, 配置结果为: jdbc:mysql://...
欢迎使用时间计算小工具0.2.4.r1:这个小工具可以根据自己输入的时间段长,累加计算总共是多长时间,并格式化标准进位世纪(由于时间段中的月日的关系不固定,为保证数值的精确,所以不进行日到月的进位格式化)\n\n...
这个员工管理系统是使用 Java 创建的,带有用于数据库集成的 SQL 和 JDBC 以及由 Swing 组件制成的 GUI。 登录页面 登录到您的帐户上HR side或Non HR侧根据您的帐户访问权限级别 人力资源功能包括: 员工详情 员工...
JDBC驱动程序使Java应用程序可以使用SQL从Axibase时间序列数据库读取和写入时间序列数据。 读取数据 要从数据库检索记录,请按照中提供的查询语法和示例执行SELECT语句。 要从数据库读取数据,必须授予该用户: 角色...
银行柜员业务绩效考核系统的设计与实现 业务绩效考核系统主要目的是使绩效考核信息管理清晰化,基本功能包括:权限处理模块、输入模块、处理模块、统计输出模块、...按日期查询,可以查询到该日期本合作银行每位柜员
一、JSP和Servlet的简单介绍 1、Servlet和JSP简介: Java开发Web应用程序时用到的技术主要有两种,即Servlet和JSP,Servlet是在服务器端执行的... 而JSP则以HTML页面为主,需要写Java代码时则在页面中直接插入Java代