sql >> データベース >  >> RDS >> Mysql

Javaのすべてのデータベース挿入にPreparedStatementsを使用する必要がありますか?

    はい、すべてにプリペアドステートメントを使用します。

    1. それらは一度解析されます。

    2. SQLインジェクション攻撃の影響を受けません。

    3. SQLとその使用方法について考える必要があるため、より優れた設計になっています。

    それらが一度だけ使用されると思うなら、あなたは全体像を見ていません。いつの日か、データやアプリケーションが変更されます。

    編集。

    プリペアドステートメントがSQLについて考えさせるのはなぜですか?

    • 文字列をアセンブルする(または単にテキストのリテラルブロックを実行する)場合、新しいPreparedStatementを作成することはありません。 物体。 SQLを実行しているだけです。非常に簡単に実行できます。

    • PreparedStatementを作成(および保存)する必要がある場合 、カプセル化、責任の割り当てについてもう少し考えなければなりません。ステートメントの準備は、SQL処理を実行する前のステートフルイベントです。

    余分な作業はわずかですが、重要ではありません。これが、人々がORMやデータキャッシングレイヤーなど、データベースアクセスを最適化することについて考え始める原因です。

    プリペアドステートメントを使用すると、データベースアクセスはよりカジュアルではなく、より意図的になります。



    1. 列名を取得するためのMySQLクエリ?

    2. SQLインデックスの概要

    3. 存在する/存在しない:'1を選択'vs'フィールドを選択'

    4. ダッシュ付きのMySQLスキーマ名では、コマンドラインクエリを実行できません