JDBC日期处理

       在学习日期处理的时候,必须明白Date类有两个。一个在sql包下,一个在util包下。他们的关系是:java.util.Date是java.sql.Date的父类。同时还要知道sql包下的Date只是面向数据库,而util包下的Date则是面向业务逻辑的。

     

         1.向数据库插入信息。

  

 ps.setDate(3,new java.sql.Date(newDate().getTime()));   

   ps.setDate这个设置的Date是sql包下的Date。

           因此在这个setDate的方法中第二个参数不能是util包下的Date。(可以这么解释。Util包下的Data是父类,而sql包下的Date是子类。子类不能接受父类的参数。)那么我们只能在第二个参数里面放一个sql的Date。在这里我们可以看一下sql包的Date的构造方法。

      

         我们需要传一个long类型的毫秒数(这个参数表示我们要插入数据库的日期值)进去。怎么传呢?new Date().getTime()      这里的Dateutil的,因为我们要获取时间,没办法只能用util的(utilDate是面向逻辑业务的)。那getTime()方法呢?是这样的,如果你单纯建立一个测试类写入

 

System.out.println(new Date().getTime());   

      其输出结果为:1356413797263

      话说回来,那么为什么传一个1356413797263的参数会在数据库里写一个2012-12-25这个样的值呢?他会更具这个时间间隔的毫秒数自动转换(因为起始时间是一定的)。

      

      总结一下:

     


         2.从数据库里读取数据

        

     

      System.out.println(name+"的创建日期是"+rs.getDate("date"));

         这里getDate()方法返回的是一个sql包下的Date。同时我们也可以将这个返回值转换为util包下的Date。这里不需要强制转换。因为子类可以赋给父类。





   




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值