向mysql中插入Date类型的数据

先看数据库表的定义

date字段为sql.date类型。我要向其中插入指定的日期和当前日期。

一、插入当前日期

思路:先获取当前系统,在将当前系统时间转换成sql类型的时间,然后插入数据库。代码如下

public static void insert_now() throws ClassNotFoundException, SQLException{
    java.util.Date utilDate = new Date();                                    //获取java.util.Date对象---也即当前时间
    java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());    //将java.util.Date类型转换成java.sal.Date类型
    Connection conn = JDBCUtils.getConn();                        //获取数据库连接
    String sql = "insert into testdate(date) values (?)";
    PreparedStatement ps = conn.prepareStatement(sql);
    ps.setDate(1, sqlDate);                                        //sql类型的数据插入数据库
    ps.executeUpdate();
    conn.close();
}

数据库刷新后如下:

向mysql中插入Date类型的数据_第1张图片

二、插入指定日期的数据

将"2012-12-21"这个字符串插入数据库。思路:使用java.sql.Date.valueOf(String str)方法将字符串转换成sql类型的Date,然后插入数据库中

public static void string_insert_sql() throws ClassNotFoundException, SQLException{
    String str = "2012-12-21";
    java.sql.Date sqlDate = java.sql.Date.valueOf(str);        //将字符串转换成sql.Date类型
    Connection conn = JDBCUtils.getConn();                    //连接数据库
    String sql = "insert into testdate(date) values (?)";
    PreparedStatement ps = conn.prepareStatement(sql);
    ps.setDate(1, sqlDate);                                    //sql类型的额数据插入数据库
    ps.executeUpdate();
    conn.close();
}

数据库刷新后如下:

向mysql中插入Date类型的数据_第2张图片

三、从数据库中读Date类型的数据

public static void sql_to_string() throws ClassNotFoundException, SQLException{
    Date date = null;
    Connection conn = JDBCUtils.getConn();                    //获取数据库连接
    String sql = "select * from testdate where id = 4";
    PreparedStatement ps = conn.prepareStatement(sql);
    ResultSet rs = ps.executeQuery();
    if(rs.next()){
        date = rs.getDate(2);
    }
    conn.close();
    System.out.println(date);                                //可以将date转换成date.toString()        
}

附上一片看到的博文  http://blog.csdn.net/foamflower/article/details/2171537

你可能感兴趣的:(mysql)