1. 使用用户管理系统模板搭建SSM
创建一个项目,导入用户管理系统模板并根据步骤搭建SSM框架
用户系统管理模板:
2. 实现数据库的增删查改操作
- 在UserDao层添加函数
public interface UserDao {
//查询全部
List<UserInfo> findAll();
//更新前的查询
UserInfo findUserById(int id);
//更新
void updUserById(UserInfo userInfo);
//增加
void addUser(UserInfo userInfo);
//删除
void delUser(int id);
//模糊查询
List<UserInfo> findUserByName(String username);
}
- 在UserMapper.xml中根据对应的方法功能编写相应的sql语句
<mapper namespace="com.zhongruan.dao.UserDao" >
<!-- 查询全部 -->
<select id="findAll" resultType="com.zhongruan.bean.UserInfo">
select * from tb_user
</select>
<!-- 更新前查询-->
<select id="findUserById" parameterType="java.lang.Integer" resultType="com.zhongruan.bean.UserInfo">
select * from tb_user where id=#{id}
</select>
<!-- 更新-->
<update id="updUserById" parameterType="com.zhongruan.bean.UserInfo">
update tb_user set username=#{username},password=#{password} where id=#{id}
</update>
<!-- 增加-->
<insert id="addUser" parameterType="com.zhongruan.bean.UserInfo">
INSERT INTO tb_user(id,username,password) values(#{id},#{username},#{password})
</insert>
</mapper>
- 在Service层创建相同的函数
public interface UserInfoService {
//全部查询
List<UserInfo> findAll();
//更新前查询
UserInfo findUserById(int id);
//更新
void updUserById(UserInfo userInfo);
//增加
void addUser(UserInfo userInfo);
//删除
void delUser(int id);
//模糊查询
List<UserInfo> findUserByName(String username);
}
}
- 在ServiceImpl层实现相应的方法
@Service
public class UserInfoServiceImpl implements UserInfoService
{
@Autowired
private UserDao userDao;
@Override
public List<UserInfo> findAll()
{
return userDao.findAll();
}
public UserInfo findUserById(int id)
{
return userDao.findUserById(id);
}
public void updUserById(UserInfo userInfo)
{
userDao.updUserById(userInfo);
}
@Override
public void addUser(UserInfo userInfo)
{
userDao.addUser(userInfo);
}
@Override
public void delUser(int id)
{
userDao.delUser(id);
}
@Override
public List<UserInfo> findUserByName(String username)
{
return userDao.findUserByName(username);
}
}
- 编写controller层
@Controller
@RequestMapping("/user")
public class UserInfoController
{
@Autowired
private UserInfoService userInfoService;
@RequestMapping("/findAll.do")
public ModelAndView findAll()
{
//1.调用service方法查询并返回结果
List<UserInfo> userInfoList = userInfoService.findAll();
//2.实例化ModelAndView
ModelAndView mv = new ModelAndView();
mv.addObject("userInfoList", userInfoList);
mv.setViewName("user-list");
return mv;
}
//更新前查询
@RequestMapping("/findUserById.do")
public ModelAndView findUserById(int id)
{
UserInfo userInfo = userInfoService.findUserById(id);
ModelAndView mv = new ModelAndView();
mv.addObject("userInfo", userInfo);
mv.setViewName("user-update");
return mv;
}
//更新
@RequestMapping("/updUserById.do")
public String updUserById(UserInfo userInfo)
{
userInfoService.updUserById(userInfo);
return "redirect:findAll.do";
}
// 增加
@RequestMapping("/addUser.do")
public String addUser(UserInfo userInfo)
{
userInfoService.addUser(userInfo);
return "redirect:findAll.do";
}
//删除
@RequestMapping("/delUser.do")
public String delUser(int id)
{
userInfoService.delUser(id);
return "redirect:findAll.do";
}
//模糊查询
@RequestMapping("/findUserByName.do")
public ModelAndView findUserByName(String username)
{
List<UserInfo> userInfoList = userInfoService.findUserByName(username);
ModelAndView mv = new ModelAndView();
mv.addObject("userInfoList", userInfoList);
mv.setViewName("user-list");
return mv;
}
}
- 修改jsp页面
修改路径,实现数据的传递和页面的跳转
user-list.jsp
<!--数据列表-->
<table id="dataList" class="table table-bordered table-striped table-hover dataTable">
<thead>
<tr>
<th class="" style="padding-right: 0px">
<input id="selall" type="checkbox" class="icheckbox_square-blue">
</th>
<th class="sorting_asc">ID</th>
<th class="sorting_desc">用户名</th>
<th class="sorting_asc sorting_asc_disabled">密码</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
<c:forEach var="user" items="${userInfoList}">
<tr>
<td><input name="ids" type="checkbox"></td>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.password}</td>
<td class="text-center">
<a href="${pageContext.request.contextPath}/user/findUserById.do?id=${user.id}" class="btn bg-olive btn-xs">更新</a>
<a href="#" class="btn bg-olive btn-xs">删除</a>
<a href="#" class="btn bg-olive btn-xs">添加角色</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<!--数据列表/-->