码迷,mamicode.com
首页 > 数据库 > 详细

JDBC学习笔记(7):数据类型与日期问题

时间:2015-03-17 20:05:05      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

在进行日期类型的操作时,会出现两个Date,来自java.util.Date和java.sql.Date包,java.util.Date是java.sql.Date的super类。

demo:
 1 package com.xxyh.jdbc;
 2 import java.sql.Connection;
 3 import java.sql.PreparedStatement;
 4 import java.sql.ResultSet;
 5 import java.sql.SQLException;
 6 import java.util.Date;
 7 public class DateTest {
 8     
 9     public static void main(String[] args) throws SQLException {
10         create("qianqi",new Date(),500);
11     }
12     
13     public static void create(String name, Date birthday, float money) throws SQLException {
14         Connection conn = null;
15         PreparedStatement ps = null;
16         ResultSet rs = null;
17         
18         try {
19             conn = JdbcUtils.getConnection();
20             String sql = "insert into user(name,birthday,money) values(?,?,?)";
21             ps = conn.prepareStatement(sql);
22             ps.setString(1, name);
23             
24             //ps.setDate(2, (java.sql.Date) birthday);//---------1
25             //ps.setDate(2, new java.sql.Date(birthday.getTime()));//---------2
26             ps.setFloat(3, money);
27             
28             int i =ps.executeUpdate();
29             System.out.println("i==="+i);
30         } finally {
31             JdbcUtils.close(rs, ps, conn);
32         }
33     }
34 }
当使用方式1进行强制转换时会报出异常:
Exception in thread "main" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
    at com.xxyh.jdbc.DateTest.create(DateTest.java:26)
    at com.xxyh.jdbc.DateTest.main(DateTest.java:12)
 
创意一个样例,发现java.sql.Date与java.util.Date参数不同,java.sql.Date没有时分秒:
技术分享
 
通过查看API,找到方式2,首先获取毫秒数再构造成java.sql.Date形式,将java.util.Date转换成java.sql.Date的方式如下:
new java.sql.Date(new java.util.Date().getTime());

JDBC学习笔记(7):数据类型与日期问题

标签:

原文地址:http://www.cnblogs.com/xiaoxiaoyihan/p/4345112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!