ssm 框架实现模糊查询的四个步骤(超具体)
第一步:在UserDao层定义模糊查询函数,代码如下
//模糊查询
List<User> fuzzySearchUser(User user);
第二步:在UserMapping.xml(实际上就是UserDao接口的实现类)实现新增的抽象函数,代码如下:
<!--模糊查询-->
<select id="fuzzySearchUser" resultType="com.zhongruan.bean.User" parameterType="com.zhongruan.bean.User">
select *from user
<where>
<if test="username!=null and username!="> username like concat(%,#{username},%)</if>
<if test="username!=null and username!=">or id like concat(%,#{username},%)</if>
<if test="username!=null and username!=">or userpwd like concat(%,#{username},%)</if>
</where></select>
解释以下,这为Mybatis中的 多条件查询,更多详情请自行百度。参数类型为User对象,可能有同学有疑问为啥参数类型是对象,而不是字符串,先看前台代码:
<form action="${pageContext.request.contextPath}/user/fuzzySearchUser.do” method="post">
<div class="col-md-4 data1"><input type="text" class="form-control" name="username"
placeholder="username" value="">
</div>
<button type="submit" class="btn bg-maroon">搜索</button>
</form>
这是一个表单form标签、div标和类型为"submit"的按钮,详情请自己百度。其中红色字体name=”username”里的username,是和User类的变量username相对应的,ssm框架自动根据命名将数据表单提交的数据封装成一个User对象,然后传给后台,所以后天接收的是对象。
第三步:在UserService接口中增加代码:
//模糊查询 List<User> fuzzySearchUser(User user);
第四步:在UserServiceImpl中调用UserDao接口,执行模糊查询,代码如下: @Override public List<User> fuzzySearchUser(User user) { return userDao.fuzzySearchUser(user); }
总共四个步骤,其中要注意的地方有两个,第一个是数据库表中字段、User类中变量、前端中的name值、mapper文件中的sql语句中的字段都要一一对应,如果对debug有异常兴趣的同学也可以不对应。第二个是form表单提交的地址即Action=""一定要和UserController中的@RequestMapping地址一致,因为后者就是前者要提交的地址。