【发布时间】:2014-08-27 19:40:51
【问题描述】:
我想收集一些数据并将其存储到数据库中(在 Java 中,使用 MySQL)。数据之一是日期(创建/插入此条目的时间)。
我已经试过了
private java.util.Date dateUtil = new java.util.Date();
private java.sql.Date dateSQL= new java.sql.Date(dateUtil.getTime());
将日期转换为对 sql 友好的格式,但我仍然收到错误
没有找到适合 getDate(Date) 的方法
方法 ResultSet.getDate(int) 不适用
(参数不匹配;日期不能转换为int)
方法 ResultSet.getDate(String) 不适用
(参数不匹配;日期不能转换为字符串)
错误发生在一行
System.out.println("(" + resSet.getInt(1) + ")"
...
+ resultSet.getDate(dateSQL)
...
);
当我尝试使用时
resultSet.getDate(java.sql.Date(dateSQL.getTime())
或
resultSet.getDate(java.sql.Date(dateUtil.getTime())
我也遇到了错误:
找不到符号
符号:类 sql
位置:java包
是的,我已经导入了 java.sql.Date 但是 Netbeans 告诉我这个导入是未使用的......
我真的束手无策......有人知道还能做什么吗?
P.S.:float 也有同样的问题:
+ resultSet.getFloat(somefloat)
错误信息:
没有找到适合 getFloat(float) 的方法
方法ResultSet.getFloat(float)不适用
(参数不匹配;可能从 float int 进行有损转换)
方法 ResultSet.getFloat(String) 不适用
(参数不匹配;浮点数不能转换为字符串)
编辑:极简代码 sn-p:
public class sqlTest
{
public static DBConnection connection = new DBConnection();
private static PreparedStatement prepStatement;
private static ResultSet resSet;
private Date date;
private float someFloat;
public static void insertExample(Date date, float someFloat)
{
connection = (DBConnection) connection.getInstance();
if(connection == null)
{
try
{
String sql = "INSERT INTO sample(date, someFloat) VALUES(?, ?)";
prepStatement = connection.prepareStatement(sql);
prepStatement.setDate(1, date);
prepStatement.setFloat(2, someFloat);
prepStatement.executeUpdate();
String lastSample = "SELECT date, someFloat FROM SAMPLE";
if(resSet.next())
{
System.out.println("(" + resSet.getInt(1) + ")" + resSet.getDate(java.sql.Date(date.getTime())) + " " + resSet.getFloat(someFloat)); //here the error(s) occur
}
}
catch(SQLException sqle)
{
logger.log(Level.SEVERE, "SQLException was thrown while inserting sample: ", sqle.getMessage());
}
}
}
}
【问题讨论】:
-
您希望
getDate(Date)做什么?getDate方法旨在检索结果集中的特定条目作为日期... -
查看 ResultSet 的 API 文档:docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html。您会发现没有带有签名 getDate(java.sql.Date) 的方法。
-
我对 SQL 很陌生。我希望 getDate() 能够获取实际日期并将其插入数据库中......但似乎我错了......
-
另外,查看您运行的原始 SQL 查询可能会很有用。它可能允许某人帮助您正确使用结果集。
-
我建议您仔细查看 API 文档和基本 JDBC 教程。