1-从数据库取出的Date类型来自java.sql.Date(只含日期,无时间),由于jdbc属于数据访问层,它向上层业务逻辑层提供数据,业务逻辑层是不与数据库打交道的,业务逻辑层的Date类型是java.util.Date,这种类型包含时间,sql包继承自util包,将java.util.Date赋给java.sql.Date就相当于把父类赋给子类,除非是父类类型子类对象,通过ChildClass childObject = (ChildClass) parent类型Object;
把业务逻辑层的java.util.Date转换成java.sql.Date:
create("hsh", new Date()); //传入java.util.Date,hsh是name1,Date()返回当前时间,设为birthday
String sql = "INSERT INTO pet(name,birth) VALUES(?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, name1);
ps.setDate(2, new java.sql.Date(birthday.getTime())); //转换
把sql的date转换成util的date:
由于是把子类赋给父类,可以不用转换,出来的格式是sql的,转换后格式是util的。