SpringMVC+easyUI 分页,查询 (完整的CRUD)

终于完成CRUD的功能了,注意,这里会对前面有一些改动,UserController的listUser() 已经改写了,现在把全部整理一下吧。

JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



	
	
	
	jQuery EasyUI CRUD Demo
		
	
	
	
	
	
	


	

Basic CRUD Application

 
Click the buttons on datagrid toolbar to do crud actions.
UserId UserName PassWord Enable
User Information
Controller:

package com.yang.bishe.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.yang.bishe.entity.Grid;
import com.yang.bishe.entity.Json;
import com.yang.bishe.entity.User;
import com.yang.bishe.service.interfaces.IUserService;

@Controller
@RequestMapping("/user")
public class UserController extends BaseController {
	@Autowired
	private IUserService userService;
	@RequestMapping("/list")
	   public ModelAndView goList(){
		  return new ModelAndView("user/list");
	    }
	@RequestMapping("/listUsers")
	  public String listUser(HttpServletRequest request,
				HttpServletResponse response) throws Exception {
		page=ServletRequestUtils.getIntParameter(request, "page", 1);//默认值为1
		rows=ServletRequestUtils.getIntParameter(request, "rows", 0);
		String queryUserId=request.getParameter("queryUserId");//获取要查询的用户账号
		Grid grid = new Grid();
		String hql;
		Listusers;
		if(queryUserId!=null)
		{
			hql="from User as user where user.UserId like  '%"+queryUserId+"%'";
		}else{
			hql="from User";
		}
		users=(List)userService.find(hql, page, rows);
		grid.setTotal(userService.count("select count(*)"+ hql));
		grid.setRows(users);
		writeJson(grid,response);
		return null;
	    }
	
	@RequestMapping("/addUser")
	 public String addUser(User user,HttpServletRequest request,
				HttpServletResponse response) throws Exception{
		Json json = new Json();//用于向前端发送消息
		if(userService.getById(user.getUserId())!=null){
			json.setMsg("新建用户失败,用户已存在!");
		}else{
			userService.save(user);
			json.setMsg("新建用户成功!");
			json.setSuccess(true);
		}
		writeJson(json,response);
		return null;
		}
	@RequestMapping("/removeUser")
	 public String removeUser(HttpServletRequest request,HttpServletResponse response) throws Exception{
		Json json = new Json();//用于向前端发送消息
		String userId=request.getParameter("id");
		try{
			userService.delete((User)userService.getById(userId));//不懂为啥要加上(User)才对。。
			json.setMsg("删除成功!");
			json.setSuccess(true);
			writeJson(json,response);
			return null;
		}catch (Exception e){
			json.setMsg("删除失败!"+e.getMessage());
			writeJson(json,response);
			return null;
		}
	
		}
	@RequestMapping("/updateUser")
	 public String updateUser(User user,HttpServletResponse response) throws Exception{
		Json json = new Json();//用于向前端发送消息
		try{
				userService.update(user);
				json.setMsg("更新成功!");
				json.setSuccess(true);
				writeJson(json,response);
				return null;
		}catch(Exception e){
			json.setMsg("更新失败!"+e.getMessage());
			writeJson(json,response);
			return null;
		}
		
	}
}

其实listUser里面一些逻辑可以放到service上的,还没弄。。。

service层没什么,是继承一个baseService

package com.yang.bishe.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.yang.bishe.dao.IBaseDao;
import com.yang.bishe.entity.User;
import com.yang.bishe.service.base.BaseServiceImpl;
import com.yang.bishe.service.interfaces.IUserService;
@Service
public class UserServiceImpl extends BaseServiceImpl implements IUserService {
	@Autowired
	private IBaseDao userDao;
}

userDao都是继承BaseDao的:我就贴一些用到的函数吧(接口啥的就不贴出来了):

package com.yang.bishe.dao;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.List;
import java.util.Map;

import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

@Repository
public class BaseDaoImplimplements IBaseDao {

	@Autowired
	private SessionFactory sessionFactory;

	/**
	 * 获得当前事物的session
	 * 
	 * @return org.hibernate.Session
	 */
	public Session getCurrentSession() {
		return sessionFactory.getCurrentSession();
	}

	@Override
	public Serializable save(T o) {
		if (o != null) {
			return getCurrentSession().save(o);
		}
		return null;
	}

	@SuppressWarnings("unchecked")
	@Override
	public T getById(Class c, Serializable id) {
		return (T) getCurrentSession().get(c, id);
	}

	@Override
	public T getByHql(String hql) {
		Query q = getCurrentSession().createQuery(hql);
		List l = q.list();
		if (l != null && l.size() > 0) {
			return l.get(0);
		}
		return null;
	}


	@Override
	public void delete(T o) {
		if (o != null) {
			getCurrentSession().delete(o);
		}
	}

	@Override
	public void update(T o) {
		if (o != null) {
			getCurrentSession().update(o);
		}
	}

	@Override
	public List find(String hql) {
		Query q = getCurrentSession().createQuery(hql);
		return q.list();
	}


	@Override
	public List find(String hql, int page, int rows) {
		Query q = getCurrentSession().createQuery(hql);
		return q.setFirstResult((page - 1) * rows).setMaxResults(rows).list();
	}

	@Override
	public Long count(String hql) {
//		Query q = getCurrentSession().createQuery(hql).;
//		return (Long) q.uniqueResult();
		return  (Long)getCurrentSession().createQuery(hql).list().get(0);
	}


	@Override
	public int executeHql(String hql) {
		Query q = getCurrentSession().createQuery(hql);
		return q.executeUpdate();
	}


	@SuppressWarnings("unchecked")
	@Override
	public List findBySql(String sql) {
		SQLQuery q = getCurrentSession().createSQLQuery(sql);
		return q.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
	}

	@Override
	public List findBySql(String sql, int page, int rows) {
		SQLQuery q = getCurrentSession().createSQLQuery(sql);
		return q.setFirstResult((page - 1) * rows).setMaxResults(rows).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
	}


	@Override
	public int executeSql(String sql) {
		SQLQuery q = getCurrentSession().createSQLQuery(sql);
		return q.executeUpdate();
	}

	@Override
	public BigInteger countBySql(String sql) {
		SQLQuery q = getCurrentSession().createSQLQuery(sql);
		return (BigInteger) q.uniqueResult();
	}

}

效果图:


第二页:


根据userId查找,这里是模糊查询:



编辑用户(弹出的对话框会获取选中的数据):


修改后:







你可能感兴趣的:(easyUI,JavaWeb,Spring)