`
qianchengboy
  • 浏览: 50413 次
  • 性别: 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
  

分享到:
评论

相关推荐

    jdbc2000,jdbc2005

    5. **连接池(Connection Pooling)**:提高了应用程序性能,通过复用已建立的数据库连接来减少创建和关闭连接的时间。 JDBC2005,也称为JDBC 3.0,是JDBC的一个重要迭代,它基于JDBC2.0并引入了更多改进和扩展,...

    sharding-jdbc按月分表样例

    【描述】中的"按月动态分表"是指根据时间字段(如订单日期)将数据分散到多个以月份命名的表中,例如`order_202201`表示2022年1月的订单数据。这种方式可以有效缓解单表数据量过大导致的查询性能问题,同时便于进行...

    三种JDBC批量插入编程方法的比较

    在Java的数据库编程中,JDBC(Java Database Connectivity)提供了多种方法来实现数据的批量插入,从而提高数据库操作的效率。本篇文章将深入探讨三种不同的JDBC批量插入编程方法,并进行对比分析,以帮助开发者更好...

    jdbc线程池演示demo

    在Java数据库连接(JDBC)中,线程池是一种优化数据库操作的重要技术。线程池可以提高应用程序的性能,减少创建和销毁线程的开销,同时管理并发访问数据库的多个请求。本实例中,我们将重点讨论如何使用C3P0这个开源...

    JDBC教程

    - 使用PreparedStatement代替Statement,减少SQL解析时间。 - 使用批处理处理大量插入或更新操作。 - 合理设置JDBC连接池大小,避免频繁创建和销毁连接。 - 使用Statement的`setFetchSize()`方法控制结果集的大小,...

    使用jdbc动态连接数据库

    - `executeUpdate(String sql)`:执行更新(插入、删除或修改)语句。 #### 三、JDBC的工作原理 当使用JDBC连接数据库时,首先需要通过`DriverManager`加载合适的驱动程序,然后使用`getConnection`方法建立到...

    Mysql JDBC Url参数说明

    首先,JDBC URL的基本格式如下: ```text jdbc:mysql://[hostname]:[port]/[database]?[parameters] ``` - `jdbc:mysql://` 是固定的协议前缀,表示使用MySQL的JDBC驱动。 - `[hostname]` 是MySQL服务器的IP地址或...

    mssql2000-jdbc

    通过JDBC,Java开发者可以编写代码来执行SQL查询、插入数据、更新数据库记录以及进行其他数据库操作。SQL Server 2000是微软公司推出的一个关系型数据库管理系统,它支持多种连接方式,包括使用JDBC驱动。 要使用...

    jdbc连接数据库的方式2

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

    JDBC技术操纵数据库

    `MyTools.changeTime()`函数可能是用来将数据库中的日期格式转换为更友好的显示格式。 总的来说,这个实验涵盖了JDBC基础操作,包括数据库连接、SQL执行以及数据展示。通过这个实验,学生可以学习到如何在Java Web...

    尚硅谷jdbc视频教程

    4. **执行SQL**:通过Statement对象执行SQL语句,如`executeQuery()`用于查询,`executeUpdate()`用于执行插入、更新或删除操作。 5. **处理结果**:对于查询操作,需要使用ResultSet对象处理结果集;对于修改操作,...

    jdbc jar包

    在Java应用程序中,JDBC扮演着桥梁的角色,允许程序执行SQL语句,进行数据查询、插入、更新和删除等操作。 **1. JDBC API概述** JDBC API主要由以下组件构成: - `java.sql.DriverManager`: 它是JDBC的核心,负责...

    Jmeter需要的JDBC测试jar包

    2. 添加“JDBC Request”元件,指定SQL查询或操作,如读取数据、插入记录、更新或删除。 3. 可以添加“View Results Tree”监听器来查看请求的详细结果,包括执行时间、返回结果集等。 4. 设置线程组参数,如并发...

    用JDBC编写新闻页面

    在IT行业中,JDBC(Java Database Connectivity)是Java编程语言中用于访问数据库的标准接口,它为程序员提供了在各种数据库之间进行交互的能力。本项目“用JDBC编写新闻页面”是针对初学者和有一定基础的开发者设计...

    dm-jdbc.rar

    这些jar文件实际上是Java类库,它们封装了与达梦数据库进行通信的必要方法和逻辑,使得Java开发者可以通过调用这些类库来实现对达梦数据库的操作,如连接、查询、插入、更新和删除数据。 1. **达梦JDBC驱动的版本...

    各种数据库的jdbc驱动

    加载Oracle JDBC驱动并建立连接的过程与MySQL类似,但需要使用特定的URL格式和驱动类名。 4. **SQL Server 2005 JDBC驱动**: SQL Server 2005提供了JDBC驱动,称为Microsoft SQL Server JDBC Driver,它支持Java...

    sqlite-jdbc-3.8.7.jar下载

    3. **执行SQL语句**:使用`java.sql.Statement`或`java.sql.PreparedStatement`对象来执行SQL命令,例如创建表、插入数据、查询等。 4. **结果集处理**:对于查询操作,结果会返回一个`java.sql.ResultSet`对象,...

    JDBC培训资料java连接数据库

    JDBC可以处理各种数据库操作,如插入、更新、删除数据,以及执行复杂的查询。 2. **使用JDBC**: 使用JDBC通常包括以下几个步骤: - **注册驱动**:通过`Class.forName()`方法加载特定数据库的JDBC驱动。 - **...

    jdbc.rar_jdbc_jdbc系统

    【jdbc.rar_jdbc_jdbc系统】是一个包含有关Java数据库连接(JDBC)技术的压缩包,主要用于实现一个简单的网吧管理系统。这个系统利用JDBC技术来与数据库进行交互,完成诸如用户管理、计费、资源分配等核心功能。下面...

Global site tag (gtag.js) - Google Analytics