jdbc servlet ssm 实现简单的分页与批量删除
AJAX简介
AJAX = 异步 JavaScript 和 XML。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
UserMapper中的代码
<select id="search" parameterType="String" resultType="com.wu.bean.User">
select * from tb_user where username like "%"#{username}"%"
</select>
<delete id="deleteAll" parameterType="list">
delete from tb_user where id in
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
UserDao
public interface UserDao {
User findUserByUserName(String username);
List<User> findAll(@Param("start") int start,@Param("username") String username);
void deleteById(int id);
void addUser(User user);
User selectById(int id);
void update(User user);
int getTotalCount(@Param("username") String username);
List<User> search(String username);
void deleteAll(@Param("ids") List<Integer> ids);
}
IUserService
public interface IUserService {
boolean login(String username,String password);
PageInfo<User> findAll(int currentPage,String username);
void deleteById(int id);
void addUser(User user);
User selectUserById(int id);
void update(User user);
List<User> search(String username);
void deleteAll(List<Integer> ids);
}
UserController
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("/login.do")
public ModelAndView login(User user, HttpSession session){
boolean flag = userService.login(user.getUsername(), user.getPassword());
ModelAndView modelAndView=new ModelAndView();
if(flag){
session.setAttribute("user",user);
modelAndView.setViewName("main");
}else {
modelAndView.setViewName("../failer");
}
return modelAndView;
}
@RequestMapping("/findAll.do")
public ModelAndView findAll(@RequestParam(defaultValue = "1") int currentPage,String username,HttpSession session,@RequestParam(defaultValue = "0") int type) {
if (type==1){
session.setAttribute("searchname",username);
}else {
username=(String)session.getAttribute("searchname");
}
PageInfo<User> pageInfo = userService.findAll(currentPage,username);
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("pageInfo", pageInfo);
modelAndView.setViewName("user-list");
return modelAndView;
}
@RequestMapping("/deleteById.do")
public String delete(int id){
userService.deleteById(id);
return "redirect:findAll.do";
}
@RequestMapping("/addUser.do")
public String add(User user){
userService.addUser(user);
return "redirect:findAll.do";
}
@RequestMapping("/toUpdate.do")
public ModelAndView toUpdate(int id){
User user=userService.selectUserById(id);
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("user",user);
modelAndView.setViewName("user-update");
return modelAndView;
}
@RequestMapping("/update")
public String update(User user){
userService.update(user);
return "redirect:findAll.do";
}
@RequestMapping("/search")
public ModelAndView search(String username){
List<User> userList=userService.search(username);
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("userList", userList);
modelAndView.setViewName("user-list");
return modelAndView;
}
@RequestMapping("/deleteAll")
public String deleteAll(String userList){
String [] strs=userList.split(",");
List<Integer> ids=new ArrayList<>();
for (String s:strs){
ids.add(Integer.parseInt(s));
}
userService.deleteAll(ids);
return "redirect:findAll.do";
}
}
UserService
@Service
public class UserService implements IUserService {
@Autowired
private UserDao userDao;
@Override
public boolean login(String username, String password) {
User user = userDao.findUserByUserName(username);
if (user!=null && user.getPassword().equals(password)){
return true;
}
return false;
}
@Override
public PageInfo<User> findAll(int currentPage,String username) {
PageInfo<User> pageInfo=new PageInfo<>();
pageInfo.setSize(5);
int tc=userDao.getTotalCount(username);
pageInfo.setTotalCount(tc);
int tp=(int)Math.ceil(tc/5.0);
pageInfo.setTotalPage(tp);
if (currentPage<1){
pageInfo.setCurrentPage(1);
}else if (currentPage>tp){
pageInfo.setCurrentPage(tp);
}else {
pageInfo.setCurrentPage(currentPage);
}
int start=(pageInfo.getCurrentPage()-1)*5;
List<User> userList=userDao.findAll(start,username);
pageInfo.setList(userList);
return pageInfo;
}
@Override
public void deleteById(int id) {
userDao.deleteById(id);
}
@Override
public void addUser(User user) {
userDao.addUser(user);
}
@Override
public User selectUserById(int id) {
return userDao.selectById(id);
}
@Override
public void update(User user) {
userDao.update(user);
}
@Override
public List<User> search(String username){
return userDao.search(username);
}
@Override
public void deleteAll(List<Integer> ids) {
userDao.deleteAll(ids);
}
}
function deleteAll() {
var checkedNum=$("input[name='ids']:checked").length;
alert(checkedNum);
if (checkedNum==0){
alert("请至少选择一个进行删除!");
return;
}
if (confirm("确认要删除这些用户吗?")){
var userList=new Array();
$("input[name='ids']:checked").each(
function () {
userList.push($(this).val());
}
);
alert(userList);
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/user/deleteAll.do",
data:{userList:userList.toString()},
success:function () {
alert("删除成功");
location.reload();
},
error:function () {
alert("删除失败");
}
});
}
}