`

Oracle Date字段的操作(java.util.Date | java.sql.Date | java.sql.Timestamp))

阅读更多

首先展示一下这几个常用的时间类之间的关系


 

一 java.util.Date转化成String

 

java.util.Date udate=Calendar.getInstance().getTime();
Format f = new SimpleDateFormat("yyyy-MM-dd hh24:mm:ss");
System.out.println(f.form

 

二 java.util.Date转化java.sql.Date 

 

 

java.util.Date udate=Calendar.getInstance().getTime();
java.sql.Date sdate = new java.sql.Date(udate.getTime());

 

 

preparedStatement.setDate(1, sdate );  

 
但是这种方式,会造成日期后面的时分秒丢失。插入数据库里显示的是例如 2011-02-16 00:00:00

可以换成: 

 

java.util.Date udate=Calendar.getInstance().getTime();
java.sql.Date sdate=new java.sql.Date(udate.getTime());
java.sql.Timestamp timestamp=new java.sql.Timestamp(sdate.getTime());

 

preparedStatement.setTimestamp(1, timestamp);

 

读取

 

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

 

 

三 几种时间类的控制台输出效果

 

import java.text.SimpleDateFormat;
import java.util.Calendar;
public class getDate {
	public static void main(String[] args) {
		java.util.Date ud=Calendar.getInstance().getTime();
		System.out.println(ud);
		
		java.util.Date utilDate=new java.util.Date();
		System.out.println(utilDate);
		
		java.sql.Timestamp tsp=new java.sql.Timestamp(utilDate.getTime());
		System.out.println(tsp);
		
		java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
		System.out.println(sqlDate);
		
        java.sql.Time sTime=new java.sql.Time(utilDate.getTime());
        System.out.println(sTime);
            
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss S");
        System.out.println(sdf.format(utilDate));
	}
}

 输出如下:

 

 

Wed Feb 16 14:34:06 CST 2011

Wed Feb 16 14:34:06 CST 2011

2011-02-16 14:34:06.859

2011-02-16

14:34:06

2011-02-16 14:34:06 859

 

四 向数据库插入时间数据的例子

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class Main {
  public static void main(String[] args) throws Exception {
    Connection conn = getConnection();
    Statement st = conn.createStatement();

    st.executeUpdate("create table survey (id int,myDate TIMESTAMP );");
    String INSERT_RECORD = "insert into survey(id, myDate) values(?, ?)";
    
    PreparedStatement pstmt = conn.prepareStatement(INSERT_RECORD);
    pstmt.setString(1, "1");
    java.sql.Timestamp  sqlDate = new java.sql.Timestamp(new java.util.Date().getTime());
    pstmt.setTimestamp(2, sqlDate);
    
    pstmt.executeUpdate();
    
    ResultSet rs = st.executeQuery("SELECT * FROM survey");

    outputResultSet(rs);

    rs.close();
    st.close();
    conn.close();
  }
  private static void outputResultSet(ResultSet rs) throws Exception {
    ResultSetMetaData rsMetaData = rs.getMetaData();
    int numberOfColumns = rsMetaData.getColumnCount();
    for (int i = 1; i < numberOfColumns + 1; i++) {
      String columnName = rsMetaData.getColumnName(i);
      System.out.print(columnName + "   ");

    }
    System.out.println();
    System.out.println("----------------------");

    while (rs.next()) {
      for (int i = 1; i < numberOfColumns + 1; i++) {
        System.out.print(rs.getString(i) + "   ");
      }
      System.out.println();
    }

  }

  private static Connection getConnection() throws Exception {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url="jdbc:oracle:thin:@192.168.130.131:1521:ICSS";
    String user="lixiang";
    String password="19870924";
    return DriverManager.getConnection(url,user,password);
  }
}
 

 

贴一个专门讲java<—>数据库时间类型的的网址

http://www.java2s.com/Tutorial/Java/0340__Database/WorkingwithDateTimeandTimestampinJDBC.htm

 

 

 

 

  • 大小: 41.9 KB
分享到:
评论

相关推荐

    java.sql.与java.util

    Java编程语言提供了两个重要的日期处理类,分别是`java.util.Date`和`java.sql.Date`,它们在处理日期和时间上有着不同的特性和用途。 `java.util.Date`是更通用的日期时间类,它包含了日期和时间的信息,可以精确...

    浅谈java中六大时间类的使用和区别

    Java提供了多种时间类来满足不同的需求,包括`java.util.Date`, `java.sql.Date`, `java.sql.Time`, `java.sql.Timestamp`, `java.text.SimpleDateFormat`, 和 `java.util.Calendar`。下面我们将深入探讨这些类的...

    Oracle Timestamp with Time zone & java

    Java 8引入的`java.time`包相比于旧的`java.util.Date`和`java.sql.Timestamp`,在性能和易用性上都有显著提升。但在数据库层面,Oracle也有优化的索引策略,如B树索引或函数索引,来提高对Timestamp with Time Zone...

    时间类型DateTime的处理.pdf

    java.sql.Date sqlDate = new java.sql.Date(sqlTimestamp.getTime()); ``` 需要注意的是,`SimpleDateFormat`的`setLenient(false)`方法用于确保日期时间格式的严格匹配,避免因不规范的输入导致意外的结果。 在...

    mybatis如何使用Java8的日期LocalDate和LocalDateTime详解

    Oracle引入了全新的日期时间API,包括`LocalDate`、`LocalTime`和`LocalDateTime`,这些类提供了更加直观且强大的日期时间处理能力,替代了传统且复杂的`java.sql.Date`、`java.sql.Timestamp`和`java.util.Date`。...

    java实现oracle插入当前时间的方法

    java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); PreparedStatement ps = connection.prepareStatement("INSERT INTO table_name (date_column) VALUES (?)"); ps.setDate(1, sqlDate); ps....

    Hibernate中数据类型

    - **日期时间类型**:`java.util.Date` 和 `java.sql.Date` 对应于 `DATE`,`java.util.Date` 和 `java.sql.Time` 映射为 `TIME`,而 `java.util.Date`、`java.sql.Timestamp` 和 `java.util.Calendar` 则映射到 `...

    Hibernate类型映射

    14. `timestamp`:映射Java的`java.util.Date`或`java.sql.TimeStamp`,对应的SQL类型是`TIMESTAMP`。用于存储日期和时间。 15. `calendar`:映射Java的`java.util.Calendar`,对应的SQL类型是`TIMESTAMP`。允许更...

    DB2 与ORACLE的比对.docx

    在 ORM 框架如 Hibernate 中,DB2 的 DATE 字段映射为 Java 的 `java.util.Date` 时,可能导致错误,需要改为 TIMESTAMP。 6. **分页处理**: - ORACLE 使用 `rownum` 进行分页,而 DB2 使用 `rownumber() over()`...

    Hibernate学习笔记

    - 日期和时间:`java.util.Date`或`java.sql.Date`,以及`timestamp`等。 - 数值类型:`BigDecimal`和`BigInteger`。 - 大对象:`Clob`和`Blob`。 至于主键管理策略,Hibernate提供了多种方式,如: - `increment`...

    java面试知识

    - **java.util**:提供了大量实用工具类,如集合框架(List、Map等)、日期操作等。 - **java.io**:提供用于输入/输出的类,如FileInputStream、OutputStreamWriter等。 - **java.sql**:为SQL数据库访问提供API...

Global site tag (gtag.js) - Google Analytics