初学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>
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>
class="CustomerX"
要求你传递一个CustomerX实例作为查询条件,你试一下这样:
sqlMap.queryForList("getAllCustomer",s);
你这样写意思是参数是个CustomerX对象吗
可你这样写list= sqlMap.queryForList("getAllCustomer");
明显不对呀 应该这样写list= sqlMap.queryForList("getAllCustomer",CustomerX对象);