java.sql.date 、java.util.date和数据中Date的使用与区别

关系:

     java.sql.date是从java.util.date继承过来的;也就是说java.util.date是java.sql.date的父类

区别:

     java.sql.date只有日期没有具体时间(时、分、秒);而java.util.date是有日期和具体时间以及包括星期;

 

 

而我们经常通过java应用程序向数据库中插入Date类型的数据时就要考虑这两种时间数据的转换,否则程序容易报错。

插入数据库中的Date一般都是指需要日期而不需要具体时分秒的,而在java中使用的util的Date,所以需要将父类向子类转换。

 

例如:向数据库中插入一条记录

static void create(String name, Date birthday, float money)
   throws SQLException {
  Connection conn = null;
  PreparedStatement ps = null;
  ResultSet rs = null;
  try {
   // 2.建立连接
   conn = JdbcUtils.getConnection();
   // conn = JdbcUtilsSing.getInstance().getConnection();
   // 3.创建语句
   String sql = "insert into user(name,birthday, money) values (?, ?, ?) ";
   ps = conn.prepareStatement(sql);
   ps.setString(1, name);  

   ps.setDate(2,birthday);      ///111111111111111111111111111  
   ps.setDate(2, new java.sql.Date(birthday.getTime()));///22222222222222222222222222
   ps.setFloat(3, money);

   // 4.执行语句
   int i = ps.executeUpdate();

   System.out.println("i=" + i);
  } finally {
   JdbcUtils.free(rs, ps, conn);
  }
 }

比较1和2,只有2是正确的。

因为java程序中的Date是util包中的,而要插入数据库中的Date是sql内的,所以需要进行转换

new java.sql.Date(birthday.getTime());得到2012-11-03这种形式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值