SSH框架下的多表增删改查

下载地址:SSH框架下的多表增删改查

点击进入码云Git下载

点击进入CSDN下载

项目结构:

项目代码就不全部贴出来了,只贴下核心代码。需要项目的自己可以去下载。

package com.atguigu.ssh.actions;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.interceptor.RequestAware;

import com.atguigu.ssh.entities.Employee;
import com.atguigu.ssh.service.DepartmentService;
import com.atguigu.ssh.service.EmployeeService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.Preparable;

public class EmployeeAction extends ActionSupport implements RequestAware, ModelDriven<Employee>, Preparable {

    private static final long serialVersionUID = 1L;

    private EmployeeService employeeService;

    public void setEmployeeService(EmployeeService employeeService) {
        this.employeeService = employeeService;
    }

    private DepartmentService departmentService;

    public void setDepartmentService(DepartmentService departmentService) {
        this.departmentService = departmentService;
    }

    public String list() {
        request.put("employees", employeeService.getAll());
        return "list";
    }

    private Integer id;

    public void setId(Integer id) {
        this.id = id;
    }

    private InputStream inputStream;

    public InputStream getInputStream() {
        return inputStream;
    }

    public String delete() {
        try {
            employeeService.delete(id);
            inputStream = new ByteArrayInputStream("1".getBytes("UTF-8"));
        } catch (Exception e) {
            e.printStackTrace();
            try {
                inputStream = new ByteArrayInputStream("0".getBytes("UTF-8"));
            } catch (UnsupportedEncodingException e1) {
                e1.printStackTrace();
            }
        }
        return "ajax-success";
    }

    public String input() {
        request.put("departments", departmentService.getAll());
        return INPUT;
    }

    public void prepareInput() {
        if (id != null) {
            model = employeeService.get(id);
        }
    }

    public String save() {
        if (id == null) {
            model.setCreateTime(new Date());
        }
        employeeService.saveOrUpdate(model);
        return SUCCESS;
    }

    /**
     * 可以根据 id 来判断为 save 方法准备的 model 是 new 的还是从数据库获取的!
     */
    public void prepareSave() {
        if (id == null) {
            model = new Employee();
        } else {
            model = employeeService.get(id);
        }
    }

    private String lastName;

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String validateLastName() throws UnsupportedEncodingException {
        if (employeeService.lastNameIsValid(lastName)) {
            inputStream = new ByteArrayInputStream("1".getBytes("UTF-8"));
        } else {
            inputStream = new ByteArrayInputStream("0".getBytes("UTF-8"));
        }

        return "ajax-success";
    }

    private Map<String, Object> request;

    @Override
    public void setRequest(Map<String, Object> arg0) {
        this.request = arg0;
    }

    @Override
    public void prepare() throws Exception {
    }

    private Employee model;

    @Override
    public Employee getModel() {
        return model;
    }

}
package com.atguigu.ssh.dao;

import java.util.List;

import org.hibernate.Query;

import com.atguigu.ssh.entities.Employee;

public class EmployeeDao extends BaseDao {

    public void delete(Integer id) {
        String hql = "DELETE FROM Employee e WHERE e.id = ?";
        getSession().createQuery(hql).setInteger(0, id).executeUpdate();
    }

    @SuppressWarnings("unchecked")
    public List<Employee> getAll() {
        String hql = "FROM Employee e LEFT OUTER JOIN FETCH e.department";
        return getSession().createQuery(hql).list();
    }

    public void saveOrUpdate(Employee employee) {
        getSession().saveOrUpdate(employee);
    }

    public Employee getEmployeeByLastName(String lastName) {
        String hql = "FROM Employee e WHERE e.lastName = ?";
        Query query = getSession().createQuery(hql).setString(0, lastName);
        Employee employee = (Employee) query.uniqueResult();
        System.out.println(employee.getDepartment().getClass().getName());
        return employee;
    }

    public Employee get(Integer id) {
        return (Employee) getSession().get(Employee.class, id);
    }
}
package com.atguigu.ssh.service;

import java.util.List;

import com.atguigu.ssh.dao.EmployeeDao;
import com.atguigu.ssh.entities.Employee;

public class EmployeeService {

    private EmployeeDao employeeDao;

    public void setEmployeeDao(EmployeeDao employeeDao) {
        this.employeeDao = employeeDao;
    }

    public boolean lastNameIsValid(String lastName) {
        return employeeDao.getEmployeeByLastName(lastName) == null;
    }

    public void saveOrUpdate(Employee employee) {
        employeeDao.saveOrUpdate(employee);
    }

    public void delete(Integer id) {
        employeeDao.delete(id);
    }

    public List<Employee> getAll() {
        List<Employee> employees = employeeDao.getAll();
        // employees.clear();
        return employees;
    }

    public Employee get(Integer id) {
        return employeeDao.get(id);
    }

}

 

posted @ 2017-09-27 16:01  雨落秋垣  阅读(1850)  评论(0编辑  收藏  举报