public void insert(Project project) {
Connection conn=null;
PreparedStatement stmt=null;
String sql=null;
try {
conn=ConnectionUtils.openConnection();
sql="insert into t_project(t_no,t_name,t_start_date,t_end_date) values(?,?,?,?)";
stmt=conn.prepareStatement(sql);
stmt.setString(1, project.getNo());
stmt.setString(2, project.getName());
stmt.setDate(3,(Date)project.getStartDate());//这样写不报错,但是运行时出错 1
stmt.setDate(4, (Date)project.getEndDate());// 2
stmt.execute();
java.lang.RuntimeException: java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date//这是运行时的错
该怎么样去1,2所对应的代码呢?
stmt.setDate(4, new java.sql.Date(project.getEndDate().getTime()))
弄个jdk的api查看java.sql.Date的构造函数就知道怎么转了
现在人都懒,连API文档都不去翻一下!
他们之间的转化java.sql.Date(long date),
Constructs a Date object using the given milliseconds time value.
java.util.Date(long date),
Allocates a Date object and initializes it to represent the specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT.
他们里面都有getTime(),这个方法获得milliseconds ,所以就可以相互转,可以多查下api