Java 如何从JdbcTemplate获取csv列表?
我有以下sql查询,并希望与spring中的Java 如何从JdbcTemplate获取csv列表?,java,spring,spring-jdbc,Java,Spring,Spring Jdbc,我有以下sql查询,并希望与spring中的JdbcTemplate一起使用: String sql = "SELECT name, age FROM EMPLOYEE WHERE age >= ?"; List<Employee> employees = jdbcTemplate.query(sql, 18, new EmployeeRowMapper()); public class EmployeeRowMapper implements Row
JdbcTemplate
一起使用:
String sql = "SELECT name, age FROM EMPLOYEE WHERE age >= ?";
List<Employee> employees = jdbcTemplate.query(sql, 18, new EmployeeRowMapper());
public class EmployeeRowMapper implements RowMapper<Employee> {
@Override
public Employee mapRow(ResultSet rs, int rowNum) throws SQLException {
Employee employee = new Employee();
employee.setName(rs.getString("name"));
employee.setAge(rs.getString("age"));
return employee;
}
}
就我的sql而言,我知道我将返回两列,第一列是名称,第二列是年龄。所以对我来说,没有必要通过显式使用列名来提取数据,比如rs.getString(“age”)
如何使用JdbcTemplate
仅将结果输出为csv列表,而不必将其映射到对象?String sql=“SELECT name | | | age FROM EMPLOYEE WHERE age>=?”;
String sql = "SELECT name || ';' || age FROM EMPLOYEE WHERE age >= ?";
List<String> employees = jdbcTemplate.queryForList(sql, String.class, 18);
List employees=jdbcTemplate.queryForList(sql,String.class,18);
String sql=“从年龄>=?”的员工中选择姓名| | | |年龄”;
List employees=jdbcTemplate.queryForList(sql,String.class,18);
最终StringBuilder sb=新StringBuilder();
ResultsTextRactor rse=新的ResultsTextRactor(){
@凌驾
公共字符串提取数据(ResultSet rs)引发SQLException、DataAccessException{
while(rs.next()){
对于(int i=1;ifinal StringBuilder sb=new StringBuilder();
ResultsTextRactor rse=新的ResultsTextRactor(){
@凌驾
公共字符串提取数据(ResultSet rs)引发SQLException、DataAccessException{
while(rs.next()){
对于(int i=1;i
String sql = "SELECT name || ';' || age FROM EMPLOYEE WHERE age >= ?";
List<String> employees = jdbcTemplate.queryForList(sql, String.class, 18);
final StringBuilder sb = new StringBuilder();
ResultSetExtractor rse = new ResultSetExtractor() {
@Override
public String extractData(ResultSet rs) throws SQLException, DataAccessException {
while (rs.next()) {
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
sb.append(rs.getObject(i));
}
sb.append("\n");
}
return sb.toString();
}
};
jdbcTemplate.query(sql, 18, rse);