Java中针对Timestamp的数据类型操作

数据库使用Oracle 10g 32位,存在一张表STU(学生表)。

这里写图片描述

二、项目结构图

这里写图片描述

三、关键代码

Stu (bean)

package sample.bean;

import java.sql.Timestamp;

public class Stu {private int stuNo;

private String stuName;

private Timestamp createTime;

public int getStuNo() {

return stuNo;

}

public void setStuNo(int stuNo) {

this.stuNo = stuNo;

}

public String getStuName() {

return stuName;

}

public void setStuName(String stuName) {

this.stuName = stuName;

}

public Timestamp getCreateTime() {

return createTime;

}

public void setCreateTime(Timestamp createTime) {

this.createTime = createTime;

}

}

StuDao

public class StuDao {/**

* 插入stu表记录(PreparedStatement),效率更高,更安全

*/

public void testInsertStuPs(Stu stu) {

Connection conn = DBUtil.getConnection(); // 创建数据库连接

PreparedStatement ps = null;// 创建PreparedStatement对象

try {

System.out.println("=========连接成功===============");

String sql = "insert into stu values(?,?,?)";

ps = conn.prepareStatement(sql); // 获取PreparedStatement对象

ps.setInt(1, stu.getStuNo());

ps.setString(2, stu.getStuName());

ps.setTimestamp(3, stu.getCreateTime());

int rs = ps.executeUpdate();// 执行更新语句

if (rs != 0) {

System.out.println("insert success");

} else {

System.out.println("insert fail");

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DBUtil.closePreparedStatement(ps);

DBUtil.closeConnection(conn);

}

}

/**

* 查询stu表记录

*/

public Stu testSelectStuByNo(int stuNo) {

Connection conn = DBUtil.getConnection(); // 创建数据库连接

PreparedStatement statement = null;// 创建statement对象

ResultSet result = null;// 创建结果集ResultSet

Stu stu = new Stu();

try {

String sql = "select * from stu where stuno=?";

statement = conn.prepareStatement(sql); // 获取PreparedStatement对象

statement.setInt(1, stuNo);

result = statement.executeQuery();

if (result.next()) {

stu.setStuNo(result.getInt(1));

stu.setStuName(result.getString(2));

stu.setCreateTime(result.getTimestamp(3));

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DBUtil.closeResultSet(result);

DBUtil.closePreparedStatement(statement);

DBUtil.closeConnection(conn);

new Date().getTime();

最近做监控系统,发现代码中有前两种方法,然后突然有了一个想法,到底哪个更快呢?

然后做了如下实验:

Java代码 收藏代码XM返佣https://www.kaifx.cn/broker/x...

import java.util.Calendar;

import java.util.Date;

public class TimeTest {private static long _TEN_THOUSAND=10000;

public static void main(String[] args) {

long times=1000*_TEN_THOUSAND;

long t1=System.currentTimeMillis();

testSystem(times);

long t2=System.currentTimeMillis();

System.out.println(t2-t1);

testCalander(times);

long t3=System.currentTimeMillis();

System.out.println(t3-t2);

testDate(times);

long t4=System.currentTimeMillis();

System.out.println(t4-t3);

}

public static void testSystem(long times){//use 188

for(int i=0;i

long currentTime=System.currentTimeMillis();

}

}

public static void testCalander(long times){//use 6299

for(int i=0;i

long currentTime=Calendar.getInstance().getTimeInMillis();

}

}

public static void testDat该方法的含义是,表示定时器将延迟delay(毫秒)时间后,执行task任务。如果delay为负数或0,则任务会被立即进行。而且是一次性的执行任务,后续不会重复(或定时)执行该任务。

对于Timer类,还提供一个同样功能的方法,如下:

1

public void schedule(TimerTask task, Date time)

该方法与上面方法的区别是,上面方法是指定延期一段时间执行,这个方法是指定在某个具体的时间点执行。注意,如果系统的当前时间已经超过了参数time指定的时间,该任务会被立即执行。

当运行上面代码时,我们发现程序立即打印类似如下的2条信息:

main start:2016-01-13 22:23:18

task run:2016-01-13 22:23:18

因为我们这里给schedule方法传递的delay参数值为0,所以任务会被立即执行,所以两个语句打印出来的时间是一样的,这是应该的。大家可以自己改变传入的delay值来看输出信息的变化。再过大约5秒(即sleep的时间)后,继续打印了1条信息:

main end:2016-01-13 22:23:23

打印信息的时间与上面语句差了5秒,与sleep设置的一致,也是很合理的。

但我们会发现一个很有趣的现象,会发现该进程不会退出,这时main主线程已经结束了,这说明定时器把任务完成后,即使后面没有待等待执行的任务了,定时器中创建的后台线程也不会立即退出。查看了相关的java doc文档,解释说定时器线程不会主动退出,需要等待垃圾回收,但java的待垃圾回收是无法通过代码自己控制的,而是由虚拟机控制的。

java timestamp 使用_Java中针对Timestamp的操作解析相关推荐

  1. java 对比函数_java中字符串比较函数和操作函数,详细解析

    java编程语言中关于字符的内容也是极其丰富的,所以学习这方面的知识也十分重要的.今天就来为大家介绍一些与java字符串有关的内容,也就是java中字符串比较函数和操作函数,并为大家进行详细的解析,一 ...

  2. java 内存接口_java中多态机制的内存解析、抽象类、接口

    1.多态机制的内存解析 1).多态的三要素 *类之间具有相互继承关系: *子类重写父类的方法: *父类引用指向子类对象: 2).为了更加细致深入的了解多态运行的机制,将下列代码的在内存中运行的简图绘制 ...

  3. java 重力脚本_Java中非常简单的脚本解析器

    我目前正在用Java进行一个小项目,我需要为我组成的机器人处理非常轻量级的脚本语言. 它不需要处理算术或任何复杂的功能,它只需要运行某些命令并处理if和while语句. 它可能看起来像这样: turn ...

  4. java使用爬虫_Java中如何使用爬虫进行解析?

    我们都知道可以用爬虫来找寻一些想要的数据,除了可以使用python进行操作,我们最近学习的java同样也支持爬虫的运行,本篇小编就教大家用java爬虫来进行网页的解析,具体内容请往下看: 1.spri ...

  5. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  6. java静态导入_Java中越来越多地接受静态导入吗?

    java静态导入 曾经有一段时间,至少在礼貌的社会中,人们普遍认为使用" 不是 "一词是不可接受的. 确实,在那个时候(也许直到今天),很多人确实(也确实)不认为这不是一个真实的词 ...

  7. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  8. java 字符串总结_Java中字符串(String)总结

    先说说JDK API: JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口,这些功能以类的形式封装). JDK API包含的 ...

  9. java有道_java中的各种流(老师的有道云笔记)

    内存操作流-字节 之前的文件操作流是以文件的输入输出为主的,当输出的位置变成了内存,那么就称为内存操作流.此时得使用内存流完成内存的输入和输出操作. 如果程序运行过程中要产生一些临时文件,可采用虚拟文 ...

最新文章

  1. 关于高速光耦6n137的使用总结_光耦使用中的那点事1
  2. html导入.md文件并渲染,vue 导入.md文件(markdown转HTML)
  3. Linux负载均衡软件LVS
  4. 7.MATLAB变量——矩阵操作二
  5. python 三步问题
  6. linux boot空间分多少,/boot分区空间不足,清理老内核所占空间
  7. android phonegap 服务器ip配置,android + phoneGap 环境搭建
  8. 操作系统安装必备基础知识----浅谈电脑系统里的那些UEFI, BIOS, MBR, GPT。
  9. 3d翻转 ios_iOS自定义转场详解04——实现3D翻转效果
  10. java ssdb 操作link遍历map的两种方式
  11. python能制作游戏吗_没有Python不能做的游戏,这些游戏都可以做
  12. 使用Spring JDBC时遇到的Software caused connection abort: recv failed问题
  13. Go语言超全详解(入门级)
  14. java api 合数_如何在 Swift 语言下使用 iOS Charts API 制作漂亮图表?
  15. 耗时86小时的「百变小樱」最强数据可视化作品!
  16. 计算机制作游戏,怎么制作游戏?
  17. ean13码 oracle,Code 128码与EAN 13码的区别
  18. webrtc与stunserver、turnserver建立连接花费时间十秒左右
  19. 史上最全超级金融知识(珍藏版)
  20. 网站UI设计应具有的8大品质和特点--摘自《众妙之门--网站UI设计之道》

热门文章

  1. 计算机公共课5——演示文稿软件 PowerPoint 2010
  2. Linux 学习目录
  3. E4G刷Linux,易视宝E4-G 全志A20 刷机 armlinux ubuntu server 教程
  4. java和js实现省市县级连
  5. ESP32-C3 flash encryption secure boot
  6. Google 地图- 基本地图类型
  7. 快讯|ONES 通过 CMMI 3 级评估认证
  8. javaweb_会话管理(sessionCookie)
  9. 基于Java语言在窗体上实现飞机大战小游戏
  10. 欺骗的艺术----(9)