ResultSet的getDate()、getTime()和getTimestamp()比较

本文介绍了如何使用Java从ResultSet中正确地获取包含年月日时分秒的完整日期时间。通过对比getDate(), getTime() 和 getTimestamp() 方法,明确指出getTimestamp() 是获取完整日期时间的正确选择。
数据库中存储时间格式为2013-11-11 11:08:08,现在要从ResultSet中取出时间,当然是要包含年月日时分秒的,发现
rs.getDate()只是返回日期部分     java.sql.Date
rs.getTime()只是返回时间部分     java.sql.Time
rs.getTimestamp()才是返回时间和日期     java.sql.Timestamp

所以正确取得时间格式为2013-11-11 11:08:08方式如下:

Date time1=new Date(rs.getTimestamp("pub_time").getTime());//java.util.Date
SimpleDateFormat formattime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String pubtime=formatime.format(time1);
package com.rain.dao; import com.rain.bean.Borrowrecordsbean; import util.DBUtil; import java.sql.*; import java.util.ArrayList; import java.util.List; public class borrowrecordsdao { /** * 添加借阅记录 * @throws ClassNotFoundException */ public boolean addBorrowRecord(Borrowrecordsbean record) throws ClassNotFoundException { String sql = "INSERT INTO borrow_records (book_id, user_id, borrow_date, due_date, return_date, STATUS) " + "VALUES (?, ?, ?, ?, ?, ?)"; Connection conn = null; PreparedStatement pstmt = null; try { conn = DBUtil.getConnection(); pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pstmt.setInt(1, record.getBook_id()); pstmt.setInt(2, record.getUser_id()); pstmt.setDate(3, new java.sql.Date(record.getBorrow_date().getTime())); pstmt.setDate(4, new java.sql.Date(record.getDue_date().getTime())); if (record.getReturn_date() != null) { pstmt.setDate(5, new java.sql.Date(record.getReturn_date().getTime())); } else { pstmt.setNull(5, Types.DATE); } pstmt.setString(6, record.getSTATUS()); int rowsAffected = pstmt.executeUpdate(); if (rowsAffected > 0) { ResultSet generatedKeys = pstmt.getGeneratedKeys(); if (generatedKeys.next()) { record.setId(generatedKeys.getInt(1)); // 设置生成的 ID } } return rowsAffected > 0; } catch (SQLException e) { e.printStackTrace(); return false; } finally { DBUtil.CloseDB(null, pstmt, conn); } } /** * 查询所有借阅记录 * @throws ClassNotFoundException */ public List<Borrowrecordsbean> getAllBorrowRecords() throws ClassNotFoundException { List<Borrowrecordsbean> records = new ArrayList<>(); String sql = "SELECT * FROM borrow_records"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DBUtil.getConnection(); pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while (rs.next()) { Borrowrecordsbean record = new Borrowrecordsbean(); record.setId(rs.getInt("id")); record.setBook_id(rs.getInt("book_id")); record.setUser_id(rs.getInt("user_id")); record.setBorrow_date(rs.getDate("borrow_date")); record.setDue_date(rs.getDate("due_date")); record.setReturn_date(rs.getObject("return_date", Date.class)); record.setSTATUS(rs.getString("STATUS")); record.setCreated_at(rs.getTimestamp("created_at")); records.add(record); } } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.CloseDB(rs, pstmt, conn); } return records; } /** * 根据用户ID查询借阅记录 * @throws ClassNotFoundException */ public List<Borrowrecordsbean> getBorrowRecordsByUserId(int userId) throws ClassNotFoundException { List<Borrowrecordsbean> records = new ArrayList<>(); String sql = "SELECT * FROM borrow_records WHERE user_id = ?"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DBUtil.getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setInt(1, userId); rs = pstmt.executeQuery(); while (rs.next()) { Borrowrecordsbean record = new Borrowrecordsbean(); record.setId(rs.getInt("id")); record.setBook_id(rs.getInt("book_id")); record.setUser_id(rs.getInt("user_id")); record.setBorrow_date(rs.getDate("borrow_date")); record.setDue_date(rs.getDate("due_date")); record.setReturn_date(rs.getObject("return_date", Date.class)); record.setSTATUS(rs.getString("STATUS")); record.setCreated_at(rs.getTimestamp("created_at")); records.add(record); } } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.CloseDB(rs, pstmt, conn); } return records; } /** * 更新借阅记录(如归还或预约完成) * @throws ClassNotFoundException */ public boolean updateBorrowRecord(Borrowrecordsbean record) throws ClassNotFoundException { String sql = "UPDATE borrow_records SET return_date = ?, STATUS = ? WHERE id = ?"; Connection conn = null; PreparedStatement pstmt = null; try { conn = DBUtil.getConnection(); pstmt = conn.prepareStatement(sql); if (record.getReturn_date() != null) { pstmt.setDate(1, new java.sql.Date(record.getReturn_date().getTime())); } else { pstmt.setNull(1, Types.DATE); } pstmt.setString(2, record.getSTATUS()); pstmt.setInt(3, record.getId()); int rowsAffected = pstmt.executeUpdate(); return rowsAffected > 0; } catch (SQLException e) { e.printStackTrace(); return false; } finally { DBUtil.CloseDB(null, pstmt, conn); } } /** * 删除借阅记录 * @throws ClassNotFoundException */ public boolean deleteBorrowRecord(int recordId) throws ClassNotFoundException { String sql = "DELETE FROM borrow_records WHERE id = ?"; Connection conn = null; PreparedStatement pstmt = null; try { conn = DBUtil.getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setInt(1, recordId); int rowsAffected = pstmt.executeUpdate(); return rowsAffected > 0; } catch (SQLException e) { e.printStackTrace(); return false; } finally { DBUtil.CloseDB(null, pstmt, conn); } } /** * 根据图书ID查询借阅记录 * @throws ClassNotFoundException */ public List<Borrowrecordsbean> getBorrowRecordsByBookId(int bookId) throws ClassNotFoundException { List<Borrowrecordsbean> records = new ArrayList<>(); String sql = "SELECT * FROM borrow_records WHERE book_id = ?"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DBUtil.getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setInt(1, bookId); rs = pstmt.executeQuery(); while (rs.next()) { Borrowrecordsbean record = new Borrowrecordsbean(); record.setId(rs.getInt("id")); record.setBook_id(rs.getInt("book_id")); record.setUser_id(rs.getInt("user_id")); record.setBorrow_date(rs.getDate("borrow_date")); record.setDue_date(rs.getDate("due_date")); record.setReturn_date(rs.getObject("return_date", Date.class)); record.setSTATUS(rs.getString("STATUS")); record.setCreated_at(rs.getTimestamp("created_at")); records.add(record); } } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.CloseDB(rs, pstmt, conn); } return records; } } 写出对应的servlet类
07-26
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值