很久没试过将String类型转换并存进数据库中的date类型的字段,今天刚好遇到并解决了这个小问题,故写下来加深印象。
平时我们一般将数据库里面关于时间的处理字段设置为char之类的字符型,这样的好处是便于读取和存入,省掉了转换类型的麻烦。但有时也会需要将字段设置为date类型用于存放时间等。这里就列举一个例子。
我的这个字段名是chusheng_time,也就是出生日期,类型设置为date类型。
java里面的类型是string类型,如下图:
我使用的是java提供的传统的jdbc接口连接数据库,具体代码为:
PreparedStatement statement = database.connection.prepareStatement(sql);
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
java.util.Date d = sdf.parse(chushengTime); //注意这里转换的是java.util.Date mysql,数据库也提供了一个自身的date模式,千万不能混淆
statement.setDate(4, new java.sql.Date(d.getTime())); //这里是将until.date的时间转换为 sql.date类型,这一步是必须的
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("出错");
}
总的来说就是在java后台中将string类型的时间先转换为java.util.Date类型的时间,在插入数据库的时候强制转换为java.sql.Date类型,这样就能正常插入到数据库当中