【发布时间】:2017-11-14 23:39:51
【问题描述】:
我需要制作一个 Jar 来格式化 Access 数据库中的电话号码并为此使用 UcanAccess,所有查询都可以正常工作,直到我需要使用格式化的电话号码更新数据库列。
public void updatePhonenumberColumn()
{
try {
for (int i = 0; i < this.phoneNumbers.size(); i++) {
String SQL = "UPDATE [" + this.table + "] SET [" + this.phonenumberColumn + "]=" + this.phoneNumbers.get(i) + " WHERE [" + this.id + "]=" + i;
PreparedStatement preparedStatement = connection.prepareStatement(SQL);
preparedStatement.executeUpdate();
}
} catch (SQLException e) {
System.err.println(e.getMessage() + "\nErrorcode: " + e.getErrorCode());
}
}
我尝试使用其他帖子中建议的括号,格式化的电话号码由我自己存储在一个 ArrayList 中,然后我尝试使用更新语句添加。如果有不清楚的地方,我会尝试提供更多信息。
我尝试使用 ResultSet.next() 并注意到 while 循环立即离开,好像 ResultSet 将为空,这是不可能的,因为我之前使用完全相同的代码将电话号码附加到我的 ArrayList。
public void updatePhonenumberColumn()
{
String sql = "SELECT " + this.phonenumberColumn + " FROM " + this.table;
try {
Statement statement = connection.createStatement();
this.resultSet = statement.executeQuery(sql);
System.out.println(this.resultSet.getFetchSize());
} catch (SQLException e) {
System.err.println(e.getMessage() + "\nErrorcode: " + e.getErrorCode());
}
}
在前面的查询下从 Access 数据库中获取电话号码
public void executeQueryPhoneNumber(String tableName, String columnName)
{
this.actualColumn = columnName;
this.phonenumberColumn = columnName;
this.table = tableName;
try {
this.query = this.connection.createStatement();
this.resultSet = query.executeQuery("SELECT " + this.phonenumberColumn + " FROM " + this.table);
appendItems(this.phoneNumbers, this.resultSet);
} catch (SQLException e) {
System.err.println(e.getMessage() + "\nErrorCode: " + e.getErrorCode());
}
}
我会非常感谢任何想法
【问题讨论】:
标签: java sql ms-access jdbc ucanaccess