ResultSetExtractor
を使用してデータベースからデータを取得する方法? ここで私はバックエンドとしてOracle 10gを使用しています。従業員テーブルから従業員の詳細を検索する場合、ResultSetExtractor
またはRowMapper
を使用する方が良いですか?春のJDBCに良い記事がありSpring ResultSetExtractor
5
A
答えて
2
には、次の使用例である:
PersonResultSetExtractorクラス:
package dao.mapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.ResultSetExtractor;
import domainmodel.Person;
public class PersonResultSetExtractor implements ResultSetExtractor {
@Override
public Object extractData(ResultSet rs) throws SQLException {
Person person = new Person();
person.setFirstName(rs.getString(1));
person.setLastName(rs.getString(2));
return person;
}
}
RowMapperの:
package dao.mapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.RowMapper;
public class PersonRowMapper implements RowMapper {
@Override
public Object mapRow(ResultSet rs, int line) throws SQLException {
PersonResultSetExtractor extractor = new PersonResultSetExtractor();
return extractor.extractData(rs);
}
}
0
シンプルな例:
MyDataStructure result = jdbcTemplate.query(sql, new ResultSetExtractor<MyDataStructure>() {
@Override
public MyDataStructure extractData(final ResultSet rs) throws ... {
// collect data from rs here ...
return myData;
}
});
0
javaの8ので、一つでも行マッピング・ルーチンとして閉鎖(ラムダ)を使用することができます。
String sql = "select first_name, last_name from PERSON where id = ?";
public Person jdbcTemplate.query(sql,(rs)->{return new Person(rs.getString("first_name"), rs.getString("last_name"));}, int id);
まずメソッドのparamは 秒、クエリである - あなたのマッパー - パーソン(文字列、String)コンストラクタが必要とされています。 "first_name"、 "last_name"はdb列の名前です。 第3引数 - idのarg、それ以上のパラメータを置くことができるvarargです。
関連する問題
- 1. RowMapper/ResultsetExtractor in spring
- 2. Spring JDBCTemplate ResultSetExtractorとSpringバッチItemReaderの違い
- 3. Spring JDBC ResultSetExtractor内の空のResultSetを確認するには?
- 4. ResultSetExtractor内のgetIntでのパフォーマンスの問題
- 5. JdbcTemplate.query(String query、ResultSetExtractor rs)メソッドを使用してspringでselectステートメントが動作する方法
- 6. RowMapper、ResultSetExtractor、バインド変数、およびクエリの種類は何ですか?
- 7. Springでデータソースをモックする方法JdbcTemplate
- 8. Java 8ラムダ機能を使用してSpring MVC Springの連絡先モデルを取得する方法JDBCの例?
- 9. Spring + Hibernate + Spring
- 10. SpringのデータJPAとJDBCのテンプレート
- 11. Spring JDBC ResultSetMetaData "getColumnName()"メソッドが空の文字列を返します
- 12. Spring、Spring SecurityとSpring Webflowの互換性
- 13. Spring Boot + Spring Security + Spring OAuth2 + Googleログイン
- 14. Springブート1.2.8 Springクラウド
- 15. Springブート、Spring OAuth2、REST
- 16. Springバッチ+ Spring API REST
- 17. Spring Security + Spring Remoting + Swing
- 18. Spring WebMVC WebServiceデータストアautowired null
- 19. Springデータ、Hibernate 4.1.1、Spring JTAトランザクションマネージャ
- 20. Spring 5 MVC - InternalResourceViewResolverとSpring Security
- 21. Spring + SpringデータJava SE JPAスタンドアロン
- 22. Spring FirstまたはSpringブート
- 23. RestEASY、Spring Security、Spring Session Integration
- 24. Spring Cloud Camden.SR4 with Spring Boot 1.5.1?
- 25. ang 2 spring security with spring security
- 26. Liberty Spring Boot対Spring Boot
- 27. Spring STS 3.9.0 with Spring Boot devtools
- 28. SpringバッチアプリケーションとSpringバッチ管理
- 29. Spring Cloud ContractとプレーンSpring AMQP
- 30. Springセキュリティマルチユーザ用Spring MVC Webアプリケーション
あなたのお返事ありがとうございます。それは非常に便利です。 –
私はまた、 'ResultSetExtractor'だけを使ってもう1つの方法を見つけます。コードはここにあります –
カーソルは最初に最初の行の前に配置されているので、rs.next()を呼び出すことを忘れないでください。 –