zoukankan      html  css  js  c++  java
  • Java读取 Mysql的 datetime类型

       1.    在Mysql数据库中使用DATETIME类型来存储时间,使用JDBC中读取这个字段的时候,应该使用 ResultSet.getTimestamp(),这样会得到一个java.sql.Timestamp类型的数据。
        
        2.    在这里既不能使用 ResultSet.getDate(),也不能使用ResultSet.getTime(),
             因为前者不包括time数据,后者不包括date数据。
            
        3.    但是在使用ResultSet.getTimestamp()时也不是完全安全的,例如,当数据库中的TIMESTAMP类型的字段值为 '0000-00-00 00:00:00'时,
              使用此方法进行读取,会抛出异常:Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP,
              这是因为JDBC不能将'0000-00-00 00:00:00'转化为一个为一个java.sql.Timestamp,
              在Java中,想创建一个java.util.Date,使其值为 '0000-00-00'也是不可能的,最古老的日期应该是'0001-01-01 00:00:00'。



      4.所以,在JDBC URL中加入zeroDateTimeBehavior信息,既可以解决:
        String url = "jdbc:mysql://10.149.51.80:3306/test?relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull";
         
        
    View Code
    try {
                ps = DB.prepare(conn, sql_list);
                rs = ps.executeQuery();
                DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                while(rs.next()){
                    User u = new User();
                    
                    u.setId(rs.getInt("id"));        
                    u.setUserName(rs.getString("userName"));
                    u.setPassword(rs.getString("password"));
    
              //rs.getTimestamp("regTime")返回"2011-04-21 11:30:33.0";mysql精确到毫秒
              //df.format() ---> 去掉".0"
                    u.setRegTime(df.format(rs.getTimestamp("regTime")));
                    u.setRealName(rs.getString("realName"));
                    u.setRoleId(rs.getInt("roleId"));
                    
                    roleName = rs.getString("roleName");        
                    
                    list.add(u);                
                }
                DB.close(rs);
    
            } catch (SQLException e) {
                e.printStackTrace();
            }
        
    我在IBM工作,可以为大家内部推荐IBM各种职位 IBM全球职位尽在以下链接(请在浏览器中打开,QQ/微信 会阻止): http://ibmreferrals.com/ 很乐意为感兴趣的小伙伴分享:我的面试经验^_^ 如需咨询,请邮件发送以下邮箱,有问必回 1026096425@qq.com
  • 相关阅读:
    mysql定时器,定时查询数据库,把查询结果插入到一张表中 阿星小栈
    如何写mysql的定时任务 阿星小栈
    利用mysql游标循环结果集 阿星小栈
    页面可见生Page Visibility
    css之z-index
    css之页面三列布局之左右两边宽度固定,中间自适应
    css之页面两列布局
    jquery源码学习之extend
    jquery源码学习之queue方法
    HTTP状态码详解
  • 原文地址:https://www.cnblogs.com/jackydalong/p/2440842.html
Copyright © 2011-2022 走看看