/*控制层*/
/**
* Copyright (C), 2018-2018, 中兴微品
* FileName: EmpAction
* Author: Administrator
* Date: 2018/7/20 10:52
* Description: EmpAction
* History:
* <author> <time> <version> <desc>
* 作者姓名 修改时间 版本号 描述
*/
package com.test.controller;
import com.opensymphony.xwork2.ActionSupport;
import com.test.po.Dept;
import com.test.po.Emp;
import com.test.service.EmpService;
import com.test.untils.Page;
import org.apache.struts2.interceptor.RequestAware;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* 〈EmpAction〉
*
* @author Administrator
* @create 2018/7/20
* @since 1.0.0
*/
@Controller("empAction")
@Scope("prototype")//表示每次接收一个请求创建一个Action对象
public class EmpAction extends ActionSupport implements RequestAware {
@Resource
private EmpService empService;
private Emp emp;
private Integer empno;
private Page page;
public Page getPage() {
return page;
}
public void setPage(Page page) {
this.page = page;
}
public Integer getEmpno(){
return empno;
}
public void setEmpno(int empno){
this.empno=empno;
}
public Emp getEmp(){
return emp;
}
public void setEmp(Emp emp){
this.emp=emp;
}
private Map<String, Object> reques;
@Override
public void setRequest(Map<String, Object> reques) {
this.reques=reques;
}
public String go(){
List<Dept> depts = empService.selectDept();
reques.put("depts",depts);
return "list";
}
public String list(){
List<Emp> emps = empService.selectBynameordept(emp.getEmpname(),emp.getDeptno());
reques.put("empname",emp.getEmpname());
reques.put("emps",emps);
return "list";
}
public String delete(){
Boolean aBoolean = empService.deleteEmp( empno);
System.out.println(aBoolean);
if(aBoolean){
System.out.println("删除成功");
}
return "list";
}
public String xq(){
Emp emp = empService.selectById(empno);
List<Dept> depts = empService.selectDept();
reques.put("depts",depts);
reques.put("emp",emp);
return "xq";
}
public String ad(){
List<Dept> depts = empService.selectDept();
reques.put("depts",depts);
return "add";
}
public String add(){
Boolean aBoolean = empService.insertEmp(emp);
if(aBoolean){
System.out.println("添加成功");
}
return "list";
}
public String update(){
Emp emp = empService.selectById(empno);
reques.put("emp",emp);
return "update";
}
public String updatedo(){
Boolean aBoolean = empService.updateEmp(emp);
if(aBoolean){
System.out.println("修改成功");
}
return "update";
}
}
/*dao层实现*/
package com.demo.dao;
import com.demo.pojo.Dept;
import com.demo.pojo.Emp;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
@Repository("empDao")
public class EmpDaoImpl implements EmpDao{
@Resource(name="sessionFactory")
private SessionFactory sessionFactory;
@Override
public void add(Emp emp) {
sessionFactory.getCurrentSession().save(emp);
}
@Override
public void deleteEmp(int id) {
Emp emp = new Emp();
emp.setDeptno(id);
sessionFactory.getCurrentSession().delete(emp);
}
@Override
public void updateEmp(Emp emp) {
sessionFactory.getCurrentSession().update(emp);
}
@Override
public Emp selectById(int id) {
return (Emp) sessionFactory.getCurrentSession().get(Emp.class,id);
}
@Override
public int selectAll(String name, int dept) {
StringBuffer sb = new StringBuffer();
sb.append("select count(*) FROM Emp e where 1=1 ");
if(dept!=0){
sb.append(" and e.deptno='"+dept+"'");
}
if(!"".equals(name)){
sb.append(" and e.empname like '%"+name+"%' ");
}
//int i = sessionFactory.getCurrentSession().createQuery(sb.toString()).executeUpdate();
Query query = sessionFactory.getCurrentSession().createQuery(sb.toString());
Long total = (Long) query.uniqueResult();
System.out.println("一共有"+total+"条数据");
return total.intValue() ;
}
@Override
public List<Emp> selectBynameordept(String name, int dept,int first,int fast) {
StringBuffer sb = new StringBuffer();
sb.append("FROM Emp e where 1=1");
if(dept!=0){
sb.append(" and e.deptno="+dept+" ");
}
if(!"".equals(name)){
sb.append(" and e.empname LIKE '%"+name+"%' ");
}
Query query = sessionFactory.getCurrentSession().createQuery(sb.toString());
List<Emp> list =query.setFirstResult(first)
.setMaxResults(fast)
.list();
//SQLQuery sqlQuery = sessionFactory.getCurrentSession().createSQLQuery(sb.toString());
return list;
}
@Override
public List<Emp> selectEmp() {
return sessionFactory.getCurrentSession().createQuery("FROM Emp").list();
}
@Override
public List<Dept> selectDept() {
return sessionFactory.getCurrentSession().createQuery("FROM Dept").list();
}
}