java.util.Date怎样转换为java.sql.Date


 

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所对应的代码呢?

3个回答

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问