(二)Service
(1)BaseService
public interface BaseService {
/**
* 保存实体对象
* @param entity
* @return
*/
Serializable save(Object entity);
/**
* 保存或者更新实体对象
* @param entity
*/
void saveOrUpdate(Object entity);
/**
* 更新实体对象
* @param entity
*/
void update(Object entity);
/**
* 删除实体对象
* @param entity
*/
void delete(Object entity);
/**
* 根据id删除实体对象
* @param clazz
* @param id
*/
void deleteById(final Class clazz,Integer id);
/**
* 更具id查询实体对象
* @param id
* @return
*/
Object getObject(Class clazz,Integer id);
/**
* 查询所有实体对象
* @param clazz
* @return
*/
List getObjects(final Class clazz);
/**
* 分页查询实体对象
* @param clazz
* @param firstResult
* @param MaxResults
* @return
*/
List getObjects(final Class clazz, final int firstResult,
final int MaxResults);
/**
* 获取总记录数
* @param clazz
* @return
*/
Integer getCount(final Class clazz);
/**
* 条件查询分页实体对象
* @param clazz
* @param whereSql
* @param firstResult
* @param MaxResults
* @return
*/
List getObjects(final Class clazz, final String whereSql,
final int firstResult, final int maxResults);
/**
* 条件的获取总记录数
* @param clazz
* @return
*/
Integer getCount(final Class clazz,final String whereSql);
/**
* 条件查询分页实体对象并且有排序的字段
* @param clazz
* @param whereSql
* @param firstResult
* @param MaxResults
* @return
*/
List getObjects(final Class clazz, final String whereSql,
final int firstResult, final int maxResults,final String sort,final String order);
/**
* 批量删除实体bean
* @param ids
*/
void deleteObjects(Class clazz,String ids);
}
(2)AdminService
public interface AdminService extends BaseService {
}
(3)BaseServiceImpl
public class BaseServiceImpl implements BaseService {
private BaseDao baseDao;
public void setBaseDao(BaseDao baseDao) {
this.baseDao = baseDao;
}
@Override
public Serializable save(Object entity) {
// TODO Auto-generated method stub
return baseDao.save(entity);
}
@Override
public void saveOrUpdate(Object entity) {
baseDao.saveOrUpdate(entity);
}
@Override
public void update(Object entity) {
baseDao.update(entity);
}
@Override
public void delete(Object entity) {
baseDao.delete(entity);
}
@Override
public void deleteById(Class clazz, Integer id) {
baseDao.deleteById(clazz, id);
}
@Override
public List getObjects(Class clazz) {
return baseDao.getObjects(clazz);
}
@Override
public List getObjects(Class clazz, int firstResult, int maxResults) {
return baseDao.getObjects(clazz, firstResult, maxResults);
}
@Override
public Integer getCount(Class clazz) {
return baseDao.getCount(clazz);
}
@Override
public List getObjects(Class clazz, String whereSql, int firstResult,
int maxResults) {
return baseDao.getObjects(clazz, whereSql, firstResult, maxResults);
}
@Override
public Integer getCount(Class clazz, String whereSql) {
return baseDao.getCount(clazz, whereSql);
}
@Override
public List getObjects(Class clazz, String whereSql, int firstResult,
int maxResults, String sort, String order) {
return baseDao.getObjects(clazz, whereSql, firstResult, maxResults,
sort, order);
}
@Override
public Object getObject(Class clazz, Integer id) {
// TODO Auto-generated method stub
return baseDao.getObject(clazz, id);
}
@Override
public void deleteObjects(Class clazz, String ids) {
// 拆分ids的字符串1,2,13
String idarr[] = ids.split(",");
if (idarr.length == 1) {
baseDao.delete(baseDao.getObject(clazz, Integer.valueOf(idarr[0])));
} else {
for (int i = 0; i < idarr.length; i++) {
baseDao.delete(baseDao.getObject(clazz,
Integer.valueOf(idarr[i])));
}
}
}
}
(4)AdminServiceImpl
public class AdminServiceImpl extends BaseServiceImpl implements AdminService{
private AdminDao adminDao;
public void setAdminDao(AdminDao adminDao) {
this.adminDao = adminDao;
}
}
六、action实现
(1)BaseAction
public class BaseAction extends ActionSupport implements ServletContextAware,
ServletRequestAware, SessionAware {
// 封装servlet有关的api
public ServletContext application;
public HttpServletRequest request;
public Map session;
// 分页对象
public Pagination pagination;
public BaseService baseService;
// 当前页
public int page;
// 每页显示的记录数
public int rows;
public Serializable data;
public Integer id;
public String ids;
public void setIds(String ids) {
this.ids = ids;
}
public void setId(Integer id) {
this.id = id;
}
public Serializable getData() {
return data;
}
public void setPage(int page) {
this.page = page;
}
public void setRows(int rows) {
this.rows = rows;
}
public Pagination getPagination() {
return pagination;
}
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@Override
public void setServletContext(ServletContext application) {
this.application = application;
}
public void setBaseService(BaseService baseService) {
this.baseService = baseService;
}
/**
*转发界面
*/
public String go(){
return "go";
}
}
(2)AdminAction
public class AdminAction extends BaseAction implements ModelDriven<Admin>,Preparable{
private AdminService adminService;
private String name;
private Admin entity;
public void setEntity(Admin entity) {
this.entity = entity;
}
public void setName(String name) {
this.name = name;
}
public void setAdminService(AdminService adminService) {
this.adminService = adminService;
}
public String save(){
data = adminService.save(entity);
return "save";
}
public String update(){
System.out.println(entity.toString());
adminService.update(entity);
System.out.println("update");
return "update";
}
public String delete(){
adminService.deleteObjects(Admin.class,ids);
return "delete";
}
public String select() {
// 组合sql语句的操作
String sql = spliceWhereSql();
// 获取总记录数
// 调用baseDao中的baseService
long total = adminService.getCount(Admin.class, sql);
// 创建分页对象
pagination = new Pagination(page, rows, total);
// 获取开始的记录数
int firstResult = (int) pagination.getStartSize();
// 获取每页显示的记录数
int maxResults = rows;
// 查询当前页中的信息
List rows = adminService.getObjects(Admin.class, sql, firstResult,
maxResults);
// 设置查询出来信息 赋值给当前页对象
pagination.setRows(rows);
return "select";
}
/**
* 组合拼接sql语句的 版权归redarmychen所有 hj
*
* @return
*/
private String spliceWhereSql() {
// 定义sql语句
String whereSql = " where 1=1 ";
// 拼接sql语句
if (name != null && !"".equals(name)) {
whereSql = whereSql + " and name like '%" + name + "%' ";
}
// 返回sql语句
return whereSql;
}
/**
* 登录操作
*
* @return
*/
public String login() {
return SUCCESS;
}
/**
* 登录成功的初始化操作
*
* @return
*/
public String init() {
return "init";
}
@Override
public void prepare() throws Exception {
// TODO Auto-generated method stub
}
public void prepareSave() throws Exception {
entity = new Admin();
}
public void prepareUpdate() throws Exception {
// 如果页面中传入的参数与数据库中的字段完全一致,则只需要new一个新的对象,否则调用
// adminService.getObject(Category.class, id)这个方法查询数据,返回这个对象即可
entity = (Admin) adminService.getObject(Admin.class, id);
}
@Override
public Admin getModel() {
// TODO Auto-generated method stub
return entity;
}
}