2012-08-09 57 views
1

我使用getNamedParameterJdbcTemplate()來查詢數據庫。NamedParameterJdbcDao支持搜索表單或條件實現

有沒有更好的方法,我可以映射表單域的查詢,如果在表單域中輸入的值應該包括在哪裏條件,否則不包括條件?

目前使用像:

getNamedParameterJdbcTemplate()的查詢(QUERY_TEST,namedParams,valueObjectMapper);

+0

你現在能找到它嗎? – mass 2015-03-18 02:54:59

回答

0

我不知道這是否可能適合您,但不是使用NamedParameterJdbcTemplate,而是使用HibernateTemplate代替。然後你可以使用Example Queries

所以基本上你會根據表單域中輸入的值創建一個你正在搜索的對象的實例。 (默認情況下,只有那些設置的值的字段由Hibernate的where子句考慮)

那麼你的代碼將大致是這樣的:

getHibernateTemplate().execute(new HibernateCallback<YourClass>() { 

     @Override 
     public List<YourClass> doInHibernate(Session session) throws HibernateException, SQLException { 

      Criteria yourClassCriteria = session.createCriteria(YourClass.class); 
      Example exampleCriteria = Example.create(yourClassInstance); 
      yourClassCriteria.add(exampleCriteria); 

      return yourClassCriteria.list(); 
     } 
    }); 

很明顯,你將需要使用該類型的替代YourClass您實際上正在搜索並且yourClassInstance是基於表單中的值創建的實例。

希望有所幫助。