Java 操作mysql数据库中时间字段

来源:互联网 发布:拓扑算法数学建模 编辑:程序博客网 时间:2024/05/29 18:18

mysql(版本:5.1.50)中表示时间的类型及java中的对应类型

mysql类型 说明 对应的java类型 date “yyyy-MM-dd” 日期类型 (范围:”1000-01-01”~”9999-12-31”) java.sql.Date time “hh:mm:ss” 时间类型 (范围:”-838:59:59”~”838:59:59”) java.sql.Time year “yyyy” 年份值类型 (范围:1901~2155) java.sql.Date timestamp “yyyyMMddhhmmss” 时间戳类型 (范围:”19700101000000”~2037年的某个时刻) java.sql.Timestamp datetime “yyyy-MM-dd hh:mm:ss” 日期时间类型 (范围:”1000-01-01 00:00:00”~”9999-12-31 23:59:59”) java.sql.Timestamp

插入精确时间字段

1.设置数据库中的日期类型为datetime

表的设计

2.创建对应的pojo 并且时间的类型设为java.util.Date

import java.util.Date;public class TimePOJO {    private Integer id;    private Date f_createTime;    //getter setter}

3.使用jdbc连接数据库 使用javaAPI进行插入操作 注意插入TimeStamp类型

public static void add(TimePOJO pojo){        String sql="INSERT INTO T_datetime_test( F_CreateTime ) VALUES ( ? );";        Dbutils.executeUpdate(sql,new Timestamp(pojo.getF_createTime().getTime()));}

4.插入完成,数据库中显示

插入结果

获取精确时间字段

0.保证数据库中的列是dateTime类型

1.获取列的时候调用rs.getTimeStamp()(用rs.getDate()只能获取到 天 不能获取到 秒)

public static void list(){        List<TimePOJO> list=new ArrayList<>();        String sql="select * from T_datetime_test";        ResultSet resultSet = null;        try{             resultSet = DbUtils.executeQuery(sql);            while(resultSet.next()){                TimePOJO pojo=new TimePOJO();                Long id = resultSet.getLong("id");                Timestamp f_createTime = resultSet.getTimestamp("F_CreateTime");                pojo.setId(id);                pojo.setF_createTime(new Date(f_createTime.getTime()));                list.add(pojo);            }            list.forEach(i->{                System.out.println(i.toString()+"格式化之后的:"+sdf.format(i.getF_createTime()));            });        }catch (Exception ex){            throw new RuntimeException(ex);        }finally {            DbUtils.closeAllQueitly(resultSet );        }    }

2.控制台输出结果

对象获取

3.jsp页面显示时间:

1.先引入:

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

2.使用标签

<fmt:formatDate value="${pojo.f_createTime}" pattern="yyyy-MM-dd HH:mm:ss"/>