使用JDBC过程中报:数据库Date类型与Java的Date类型不匹配怎么解决?

代码中如果不强制转化又会报编译不能通过
pStmt.setDate(2, (Date) sellprice.getCreateDate());
但加上(Date)运行时又报错:
java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
at com.ph.irp.sell.dao.impl.PSellSellpriceDaoImpl.addSellprice(PSellSellpriceDaoImpl.java:35)
at com.ph.irp.sell.dao.TestSellpriceDao.testAddSellPrice(TestSellpriceDao.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

JDBC的数据类型一般为sql包下的Date貌似是某个的子类,你可以通过符合类型转换的模式,将String 类型转换为java.sql.Date下的类型。一般java的Date类型为java.util.Date,转换一下下就好了剩下的请查API里面的具体方法。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-10-26
是有这样的问题,在oracle中的date和java的date就不一样
第2个回答  2009-10-26
大型系统 非强制,Date基本用String Long 代替
第3个回答  2020-04-12
是有这样的问题,在oracle中的date和java的date就不一样
再看看别人怎么说的。
第4个回答  2009-10-26
java.sql.Date ds=new java.sql.Date(new java.util.Date())
这样不可以么?

使用JDBC过程中报:数据库Date类型与Java的Date类型不匹配怎么解决?
JDBC的数据类型一般为sql包下的Date貌似是某个的子类,你可以通过符合类型转换的模式,将String 类型转换为java.sql.Date下的类型。一般java的Date类型为java.util.Date,转换一下下就好了剩下的请查API里面的具体方法。

java 怎样获取java.sql.date 类型年月日并插入到数据库date类型中
字段updateTime为Date类型,那么如果只要精确到年月日,那么就使用trunc(updateTime)即可,其他还有:trunc[截断到最接近的日期,单位为天] ,返回的是日期类型 select sysdate S1,trunc(sysdate) S2, \/\/返回当前日期,无时分秒 trunc(sysdate,'year') YEAR, \/\/返回当前年的1月1日,无时分秒 trun...

...的数据存数据库里时对应的字段类型也是Date的类型,存的时候格式应该...
private Date createTime;这是实体类格式 <result column="create_time" property="createTime" jdbcType="TIMESTAMP" \/>这是mybatis.xml 配置文件格式 这是mysql 数据库格式

java操作oracle 的insert语句的时候错误,说“文字与格式字符串不匹配...
数值类型不用加引号,日期类型要用to_date 处理。在plsql中可以,可能是plsql帮你处理了不合法数据

求java Date类型字段加一天代码
Date date = new Date();Calendar calendar = new GregorianCalendar();calendar.setTime((Data)startdate); \/\/你自己的数据进行类型转换 calendar.add(calendar.DATE,1);\/\/把日期往后增加一天.整数往后推,负数往前移动 date=calendar.getTime();date就是增加一天以后的数据,如果需要的话,...

JDBC怎么获取Oracle里面的Date类型的值
通过getDATE方法可以获取这个字段,当然你的对应java字段也要是date类型

java.sql.date与java.util.date区别?
.sql.Timestamp类比java.util.Date类精确度要高。这个类包了一个getTime()方法,但是它不会返回额外精度部分的数据,因此必须使用getNanos()方法。有毫微秒部分(即额外精度部分)的数值可能比没有这个部分的数值的大一个毫秒。如果你知道你使用的数据库保存了毫秒部分,可以用下面的代码获得的数值:long ...

java的jdbc中出现"文字与格式字符串不匹配"怎么解决?
时间要转换 to_date('2013-01-25','yyyy-mm-dd')

...插入mysql数据库(对应字段类型是datetime),用JDBC连接数据库。_百度...
hh:mm:ss").parse(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));\/\/获取系统时间 java.sql.Timestamp date1=new java.sql.Timestamp(date.getTime());\/\/把java.util.Date类型转换为java.sql.Timestamp类型 最后用setTimestamp();方法就可以插入到mysql数据库中了 ...

java.util.Date和java.sql.Date相互转换问题
date.getHours()的方法已经过时,编译器会发出警告,不建议这么做。java.sql.Date没有直接显示hh:mm:ss的方法(除过时方法);有一种比较麻烦的方法可以实现你的要求。java.sql.Date b = new java.sql.Date(new java.util.Date().getTime());java.util.Date c = new java.util.Date(b.get...

相似回答