如何在百里香叶中浏览ResultSet?

时间:2017-05-30 18:45:21

标签: spring-boot thymeleaf

我想使用结果集中的百万富翁显示属性。

例如: 我想在观察中使用百日咳显示函数的结果。

public ResultSet getIntervenantById(String nomTable, String id,String nomcle) {

        try {
            st = connection.prepareStatement("select * from ? where ? = ?");
            st.setString(1, nomTable);
            st.setString(2, nomcle);
            st.setString(3, id);
            rs = st.executeQuery();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return rs ;
    }

2 个答案:

答案 0 :(得分:0)

对于您的问题,请参阅http://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html,尤其是http://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#model-attributes。你真的应该从学习基础开始--Thymeleaf的网站提供了一些好东西:http://www.thymeleaf.org/documentation.html

答案 1 :(得分:0)

有多种方法可以解决此问题。这是一个快速而肮脏的显示结果。您可以创建List并将其添加到model

服务(MyService):

public static List createList(ResultSet resultSet) throws SQLException {

    ResultSetMetaData metadata = resultSet.getMetaData();
    int numberOfColumns = metadata.getColumnCount();

    List<String> list = new ArrayList<>(numberOfColumns);
    while (resultSet.next()) {
        int i = 1;
        while (i <= numberOfColumns) {
            list.add(resultSet.getString(i++));
        }
    }
    return list;
}

<强>控制器

@GetMapping("/myPage")
public String getList(Model model) {
   ResultSet resultSet = ...; //however you call this     
   model.addAttribute("items", MyService.createList(resultSet); //try block hidden for brevity
   return "myPage";
}

HTML(myPage.html):

<div th:each="item : ${items}">
    <span th:text="${item}">No item</span>
</div>

<小时/>

另一种(可以说是更干净的)方法是使用实​​现RowMapper。我正在摘录一些代码作为例子:

public class EmployeeMapper implements RowMapper {  
   public Employee mapRow(ResultSet rs, int rowNum) throws SQLException {  
      Employee employee = new Employee();  
      employee.setEmpid(rs.getInt("empid"));  
      employee.setName(rs.getString("name"));  
      employee.setAge(rs.getInt("age"));  
      employee.setSalary(rs.getLong("salary"));  
      return employee;  
   }  
}  

然后你可能有:

public Employee getEmployee(Integer empid) {
   String SQL = "SELECT * FROM Employee WHERE empid = ?";
   Employee employee = (Employee) jdbcTemplateObject.queryForObject(SQL, new Object[]{empid}, new EmployeeMapper());
    return employee;
}

您可以将这些bean添加到模型中并按上述方式进行迭代。还有BeanPropertyRowMapper可以快速实现Spring的RowMapper

虽然使用ResultSet s而不是这条路线,但您最好使用JPA实现并返回List个对象。它有一些依赖性,但最终需要维护的代码较少。