初学ssi,标准层次开发,昨晚写个sql查询,想加载点动态条件,但即便页面选择了条件,也能传到daoimpl层,查询结果并没有加载条件,查出来的都是全部结果。
daoimpl中的代码:
public List queryCustomer(CustomerX s) {
// TODO Auto-generated method stub
List list = null;
this.init();
 try {
 System.out.println(s.getProcess_id());//能够打印出页面选择的值
 list= sqlMap.queryForList("getAllCustomer");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();

return list;

}xml:
<sqlMap>
  <typeAlias alias="CustomerX" type="com.cmbs.common.vo.CustomerX"/>
  <resultMap id="CustomerXResult" class="CustomerX">
  <result property="process_id" column="process_id" />
   .........
  </resultMap>  <select id="getAllCustomer" parameterClass="CustomerX" resultClass="CustomerX">
SELECT * FROM main_search 
<dynamic prepend="where">
<isNotEmpty property="process_id">
     process_id = #process_id#
</isNotEmpty>
</dynamic>
    </select>
</sqlMap>

解决方案 »

  1.   

    list= sqlMap.queryForList("getAllCustomer",s);
      

  2.   

    xml里面要求传递参数的啊
     class="CustomerX"
    要求你传递一个CustomerX实例作为查询条件,你试一下这样:
     sqlMap.queryForList("getAllCustomer",s);
      

  3.   

     <select id="getAllCustomer" parameterClass="CustomerX" resultClass="CustomerX">
    你这样写意思是参数是个CustomerX对象吗
    可你这样写list= sqlMap.queryForList("getAllCustomer");
    明显不对呀  应该这样写list= sqlMap.queryForList("getAllCustomer",CustomerX对象);