ハードコードされたSQLステートメントを使用してデータベースからデータを取得し、このデータをpojoに入力するアプリに取り組んでいます。Spring jdbcテンプレートが使用されているため、接続の開閉について心配する必要はありません。ハードコードされたSQLステートメントの使用は間違っているようですか?
SQLステートメントを無効にするために使用できるデザインパターンまたはライブラリはありますか?
ハードコードされたSQLステートメントを使用してデータベースからデータを取得し、このデータをpojoに入力するアプリに取り組んでいます。Spring jdbcテンプレートが使用されているため、接続の開閉について心配する必要はありません。ハードコードされたSQLステートメントの使用は間違っているようですか?
SQLステートメントを無効にするために使用できるデザインパターンまたはライブラリはありますか?
を使用するJdbcTemplate
と、アプリケーションコードは引き続き提供する責任がsql
あり、JdbcTemplate
SQLクエリまたは更新を実行し、ResultSetを反復処理し、JDBC例外をキャッチできます。ハードコードされたSQLステートメントの記述を回避したい場合はHibernate
、iBatis
などのORMツールを調べる必要があります。
MyBatis(正式にはiBatis)を見てください。
などなど。
これは、生のSQLとORMツールのどちらを使用するかの選択を取り巻くいくつかの問題についての以前の良い議論です。
Javaクラス内にSQLを含めることには本質的に問題はありません(少し物議を醸していますが)。SQLクエリを外部化する場合は、次のことができます。
applicationContext.xml
Spring構成ファイルに入れて、POJO(貧乏人のMyBatis)に挿入しますinterface SomeDao
そしてclass SqlSomeDao
SQLをカプセル化する)Spring Data JDBCGenericDAOもチェックしてください-との上に小さなDAO実装がJdbcTemplate
ありRowMapper<T>
ます。免責事項:私はこのライブラリの作者です。