本博文主要阐述模糊查询用法,说白了就是动态sql语句,通过if进行判断传进来的字段是否为空,如果为空就不执行任何操作,否则连接(说白了就是组装sql语句),主要步骤如下所示:
1.在bao层“Huserdao”新建一个模糊查询的代码,代码如下所示:
public List<HUser> SelectHuser(Map map);
2.接下来就是在entity层中“Huser.xml”代码中新添查询判断指令,代码如下所示:
<select id="SelectHuser" parameterType="map" resultType="com.hevttc.lmj.entity.HUser">
select * from h_user where
<if test="username!=null">
username like '%${username}%' and
</if>
<if test="age!=null">
age=#{age} and
</if>
<if test="sex!=null">
sex=#{sex} and
</if>
<if test="place!=null">
place like '%${place}%' and
</if>
1=1
</select>
3.在biz层的HuserBiz中添加如下代码:
public List<HUser> getAllHuser(Map map)
{
List<HUser> list=null;
try {
SqlSession session=SessionFactory.getSession();
dao=session.getMapper(HUserdao.class);
list=dao.SelectHuser(map);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
到了最后一步,就是测试代码能否正常执行,代码如下所示:
HashMap map=new HashMap();
map.put("username", "张");
List<HUser> list=biz.getAllHuser(map);
System.out.println("ID号\t姓名\t年龄\t性别\t地址");
for(HUser user:list)
{
System.out.println(user.getId()+"\t"+user.getUsername()+"\t"+user.getAge()+"\t"+(user.getSex()==0?"男":"女")+"\t"+user.getPlace());
}