私が書き込もうとしているこの練習用CRUDアプリケーションがあります。生年月日などの連絡先を保存するアプリです。Date
コマンドラインを使用して入力を受け入れ、これをHSQLDBデータベースに格納しているため、型引数を受け入れる方法がわかりません。スティングから長く解析してみましたが、スローし続けSQLDataException
ます。
ここで、この変数に使用するコード行
//this in the class with main
private Date dob;
public Date getDob() {
return dob;
}
public void setDob(Date dob) {
this.dob = dob;
}
System.out.println("Enter date of birth of "+n+" in the format dd/mm/yyyy
String date = sc2.nextLine();
long d = Date.parse(date);
uv.setDob(d);
//class with all the business logic
public void addContact(String cb, String name, long dob, String email, String phno, String tag) {
sql = "insert into "+ cb + "(name,dob,email,phone,tag) values (?,?,?,?,?)";
try {
con = JDBCHelper.getConnection();
ps1 = con.prepareStatement(sql);
ps1.setString(1, name);
ps1.setLong(2, dob);
ps1.setString(3, email);
ps1.setString(4,phno);
ps1.setString(5, tag);
}
catch(SQLException e) {
e.printStackTrace();
}
}
日付を入力すると例外が発生します
java.sql.SQLSyntaxErrorException: incompatible data type in conversion
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.setParameter(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.setLongParameter(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.setLong(Unknown Source)
Caused by: org.hsqldb.HsqlException: incompatible data type in conversion
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.types.DateTimeType.convertJavaToSQL(Unknown Source)