私は、このDAO tutorialでJDBCを使ってデータレイヤーを作成する方法を学んでいます。 しかし、私はこの時点で立ち往生しています:PreparedStatement statement = prepareStatement(connection, SQL_UPDATE, false, values);
なぜprepareStatementはこの方法で使用されますか?PreparedStatementのこれらの値/パラメータは何を意味しますか?
私は説明と提案に感謝します。
私はdocumentationを調べて、関連する例を検索しましたが、このような構造の説明は見つかりませんでした。 のprepareStatement方法が接続オブジェクトによって呼び出されたとき、私は、このような表現に慣れてる:
Connection connection = daoFactory.getConnection();
PreparedStatement statement = connection.prepareStatement(SQL);
しかし、PreparedStatementのは、以下の例のように実装された理由を私は理解していない:
public void update(User user) throws DAOException {
if (user.getId() == null) {
throw new IllegalArgumentException("User is not created yet, the user ID is null.");
}
Object[] values = {
user.getEmail(),
user.getFirstname(),
user.getLastname(),
toSqlDate(user.getBirthdate()),
user.getId()
};
try (
Connection connection = daoFactory.getConnection();
PreparedStatement statement = prepareStatement(connection, SQL_UPDATE, false, values);
) {
int affectedRows = statement.executeUpdate();
if (affectedRows == 0) {
throw new DAOException("Updating user failed, no rows affected.");
}
} catch (SQLException e) {
throw new DAOException(e);
}
}
'prepareStatement'はユーザー定義のメソッドですか?そのメソッドのコードを投稿してください。 –
@ JitinKodian私はまた、それはユーザー定義のメソッドかもしれないと思った。しかし、[BalusCチュートリアル:](http://balusc.omnifaces.org/2008/07/dao-tutorial-data-layer.html)でここには載せていないのですが、 –