logo

Spring JdbcTemplate チュートリアル

  1. Spring JDBC テンプレート
  2. Spring JDBC テンプレートの必要性を理解する
  3. Spring JDBC テンプレートの利点
  4. JDBCテンプレートクラス
  5. JdbcTemplateクラスの例

Jdbcテンプレート データベースに接続して SQL クエリを実行するための強力なメカニズムです。内部的には JDBC API を使用しますが、JDBC API の多くの問題が解消されます。

星柄をプリント

JDBC APIの問題点

JDBC API の問題点は以下のとおりです。

  • 接続、ステートメントの作成、結果セット、接続の終了など、クエリの実行の前後に多くのコードを記述する必要があります。
  • データベース ロジックで例外処理コードを実行する必要があります。
  • トランザクションを処理する必要があります。
  • これらすべてのコードをあるデータベース ロジックから別のデータベース ロジックに繰り返すのは、時間のかかる作業です。

Spring JdbcTemplateの利点

Spring JdbcTemplate は、JDBC API の上記の問題をすべて解決します。クエリを直接記述する方法が提供されるため、作業と時間を大幅に節約できます。


春のJdbcが近づく

Spring フレームワークは、JDBC データベース アクセスに対して次のアプローチを提供します。

  • Jdbcテンプレート
  • NamedParameterJdbcTemplate
  • シンプルなJdbcテンプレート
  • SimpleJdbcInsert と SimpleJdbcCall

JdbcTemplate クラス

これは、Spring JDBC サポート クラスの中心となるクラスです。接続オブジェクトの作成と終了など、リソースの作成と解放を処理します。そのため、接続を終了し忘れても問題はありません。

例外を処理し、で定義された例外クラスの助けを借りて有益な例外メッセージを提供します。 org.springframework.dao パッケージ。

JdbcTemplate クラスを利用して、データベースからのデータの挿入、更新、削除、取得などのすべてのデータベース操作を実行できます。

SpringのJdbcTemplateクラスのメソッドを見てみましょう。

MB対GB
いいえ。方法説明
1)public int update(文字列クエリ)レコードの挿入、更新、削除に使用されます。
2)public int update(文字列クエリ,オブジェクト...引数)指定された引数を使用して PreparedStatement を使用してレコードを挿入、更新、削除するために使用されます。
3)public voidexecute(文字列クエリ)DDL クエリを実行するために使用されます。
4)public Texecute(文字列SQL、PreparedStatementCallbackアクション)PreparedStatement コールバックを使用してクエリを実行します。
5)public T query(String sql、ResultSetExtractor rse)ResultSetExtractor を使用してレコードをフェッチするために使用されます。
6)パブリックリストクエリ(String sql、RowMapper rse)RowMapper を使用してレコードをフェッチするために使用されます。

Spring JdbcTemplate の例

Oracle10g データベース内に次のテーブルを作成したと仮定します。

 create table employee( id number(10), name varchar2(100), salary number(10) ); 
従業員.java

このクラスには、コンストラクター、セッター、ゲッターを含む 3 つのプロパティが含まれています。

 package com.javatpoint; public class Employee { private int id; private String name; private float salary; //no-arg and parameterized constructors //getters and setters } 
従業員Dao.java

これには、1 つのプロパティ jdbcTemplate と 3 つのメソッド saveEmployee()、updateEmployee、および deleteEmployee() が含まれています。

 package com.javatpoint; import org.springframework.jdbc.core.JdbcTemplate; public class EmployeeDao { private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public int saveEmployee(Employee e){ String query='insert into employee values( ''+e.getId()+'',''+e.getName()+'',''+e.getSalary()+'')'; return jdbcTemplate.update(query); } public int updateEmployee(Employee e){ String query='update employee set name=''+e.getName()+'',salary=''+e.getSalary()+'' where id=''+e.getId()+'' '; return jdbcTemplate.update(query); } public int deleteEmployee(Employee e){ String query='delete from employee where id=''+e.getId()+'' '; return jdbcTemplate.update(query); } } 
applicationContext.xml

ドライバーマネージャーデータソース ドライバー クラス名、接続 URL、ユーザー名、パスワードなどのデータベースに関する情報を含めるために使用されます。

という名前の物件があります 情報元 DriverManagerDataSource 型の JdbcTemplate クラス内。したがって、データソース プロパティの JdbcTemplate クラスに DriverManagerDataSource オブジェクトの参照を提供する必要があります。

ここでは、EmployeeDao クラスの JdbcTemplate オブジェクトを使用しているため、setter メソッドで渡していますが、コンストラクターを使用することもできます。

 
テスト.java

このクラスは、applicationContext.xml ファイルから Bean を取得し、saveEmployee() メソッドを呼び出します。コードのコメントを解除して、updateEmployee() メソッドと deleteEmployee() メソッドを呼び出すこともできます。

 package com.javatpoint; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext('applicationContext.xml'); EmployeeDao dao=(EmployeeDao)ctx.getBean('edao'); int status=dao.saveEmployee(new Employee(102,'Amit',35000)); System.out.println(status); /*int status=dao.updateEmployee(new Employee(102,'Sonoo',15000)); System.out.println(status); */ /*Employee e=new Employee(); e.setId(102); int status=dao.deleteEmployee(e); System.out.println(status);*/ } } 
このサンプルをダウンロードします (MyEclipse IDE を使用して開発)
このサンプルをダウンロードします (Eclipse IDE を使用して開発)