2012-10-09 25 views
5

डेटाबेस से डेटा पुनर्प्राप्त करने के लिए ResultSetExtractor का उपयोग कैसे करें? यहां मैं बैक एंड के रूप में ऑरैकल 10 जी का उपयोग कर रहा हूं। कर्मचारी तालिका से कर्मचारी विवरण खोजने के मामले में ResultSetExtractor या RowMapper का उपयोग करने के लिए बेहतर है?वसंत परिणामसेट एक्स्ट्रेक्टर

उत्तर

2

वसंत JDBC पर एक अच्छा लेख है, check this

निम्न उदाहरण उपयोग है:
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

धन्यवाद। यह काफी उपयोगी है। –

+0

मैं भी केवल का उपयोग कर 'ResultSetExtractor'.Code यहाँ –

+2

है मत भूलना rs.next() कॉल करने के लिए है, क्योंकि कर्सर आरंभ में पहली पंक्ति से पहले रखा जाता है से एक और रास्ता खोजने। –

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

एक भी पंक्ति मानचित्रण दिनचर्या के रूप में बंद (lambdas) जावा 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); 

सबसे पहले विधि परम आपकी क्वेरी है, दूसरा - अपने नक्शाकार - व्यक्ति (स्ट्रिंग, स्ट्रिंग) निर्माता की जरूरत है । "first_name", "last_name" डीबी-कॉलम नाम हैं। तीसरा - आईडी के लिए तर्क, यह एक vararg है जहां आप अधिक पैरा डाल सकते हैं। उर उत्तर के लिए

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^