先看数据库表的定义
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();
}
数据库刷新后如下:
二、插入指定日期的数据
将"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();
}
数据库刷新后如下:
三、从数据库中读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.****.net/foamflower/article/details/2171537