Maven项目
配置:
pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<!--统一配置ssh的版本号-->
<spring.version>3.1.1.RELEASE</spring.version>
<hibernate.version>3.6.5.Final</hibernate.version>
<struts2.version>2.3.1</struts2.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- java servlet api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<!--创建动态代理-->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>2.2</version>
</dependency>
<!-- hibernate-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- struts2 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-junit-plugin</artifactId>
<version>${struts2.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.5</version>
</dependency>
<!-- c3p0连接池 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency> |
controller
package com.demo.controller;
import com.demo.dao.EmpDao;
import com.demo.pojo.Dept;
import com.demo.pojo.Emp;
import com.demo.service.EmpService;
import com.demo.util.Page;
import com.opensymphony.xwork2.ActionSupport;
import com.sun.deploy.net.HttpResponse;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Controller("addAction")
@Scope("prototype")//没执行一次就自动创建一个Action
public class AddAction extends ActionSupport implements SessionAware,RequestAware,ApplicationAware {
@Resource
private EmpService empService;
private Map<String,Object> requset;
private Map<String,Object> session;
private Map<String,Object> application;
private Emp emp ;
private Page page ;
private long[] empno = new long[]{};
public long[] getEmpno() {
return empno;
}
public void setEmpno(long[] empno) {
this.empno = empno;
}
public Page getPage() {
return page;
}
public void setPage(Page page) {
this.page = page;
}
public Emp getEmp() {
return emp;
}
public void setEmp(Emp emp) {
this.emp = emp;
}
@Override
public void setApplication(Map<String, Object> map) {
this.application=map;
}
@Override
public void setRequest(Map<String, Object> map) {
this.requset=map;
}
@Override
public void setSession(Map<String, Object> map) {
this.session=map;
}
/**
* 查询所有部门
* @return
*/
public String Addselect(){
System.out.println(emp.getHiredate());
boolean add = empService.add(emp);
if(add){
System.out.println("添加成功");
}else {
System.out.println("添加失败");
}
return "index";
}
/**
* 跳转到添加页面
* @return
*/
public String sel(){
List<Dept> depts = empService.selectDept();
requset.put("depts",depts);
return "add";
}
/**
* 条件查询及分页
* @return
*/
public String add(){
//查询所有部门
List<Dept> depts = empService.selectDept();
//判断emp是否等于传过来得值
if("1".equals(emp.getEmpname())){
System.out.println(emp.getEmpname());
emp.setEmpname("");
emp.setDeptno(0);
}
page.setIs_rows(3);//每页显示多少条数据
page.setIs_page(page.getIs_page());//当前页码
int i = empService.selectAll(emp.getEmpname(), emp.getDeptno());//查询此条件下有多少条数据
System.out.println("一共有"+i+"条数据");
page.setIs_allrow(i);//把总条数赋值给page
//查询全部
System.out.println("姓名:"+emp.getEmpname()+",编号:"+emp.getDeptno());
List<Emp> list = empService.selectBynameordept(emp.getEmpname(), emp.getDeptno(), (page.getIs_page() - 1) * page.getIs_rows(), page.getIs_rows());
requset.put("pages",page);
requset.put("name",emp.getEmpname());
requset.put("depts",depts);
requset.put("Lists",list);
return "index";
}
/**
* 查询详情
* @return
*/
public String details(){
Emp emp = empService.selectById(this.emp.getEmpno());
requset.put("emp",emp);
return "details";
}
/**
* 查询出部门和员工,然后跳转到修改页面
* @return
*/
public String edit(){
SimpleDateFormat sdp = new SimpleDateFormat("yyyy-MM-dd");
Emp emp = empService.selectById(this.emp.getEmpno());
requset.put("emp",emp);
requset.put("format",sdp.format(emp.getHiredate()));
List<Dept> dept = empService.selectDept();
requset.put("depts",dept);
return "edit";
}
/**
* 完成修改并添加到数据库并回显
* @return
*/
public String editById(){
boolean b = empService.updateEmp(emp);
if(b){
System.out.println("修改成功!");
}else {
System.out.println("修改失败!");
}
SimpleDateFormat sdp = new SimpleDateFormat("yyyy-MM-dd");
Emp emp = empService.selectById(this.emp.getEmpno());
requset.put("emp",emp);
requset.put("format",sdp.format(emp.getHiredate()));
List<Dept> dept = empService.selectDept();
requset.put("depts",dept);
return "edit";
}
/**
* 删除数据
* @return
*/
public String deleteById(){
System.out.println(emp.getEmpno());
boolean b = empService.deleteEmp(emp.getEmpno());
if(b){
System.out.println("删除成功!");
}else {
System.out.println("删除失败!");
}
return "delete";
}
public String deleteNews(){
for(int i=0;i<this.empno.length;i++)
System.out.println("ID是:"+empno[i]);
boolean b = empService.delNews(empno);
System.out.println("结果是:"+b);
return "delete";
}
}
|
dao
package com.demo.dao;
import com.demo.pojo.Dept;
import com.demo.pojo.Emp;
import java.util.List;
public interface EmpDao {
void add(Emp emp);
//删除
void deleteEmp(int id);
//编辑
void updateEmp(Emp emp);
//根据id查询一条数据
Emp selectById(int id);
int selectAll(String name, int dept);
//多条件查询
List<Emp> selectBynameordept(String name, int dept,int first,int last);
//查询全部
List<Emp> selectEmp();
//查询所有部门
List<Dept> selectDept();
void delNews(long[] ids);
}
--------------------------------------------------------------------------------------------------------------------------- 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.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.ArrayList;
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.setEmpno(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();
}
@Override
public void delNews(long[] ids) {
/**
* hibernate的批量删除;
* 缺点:删除时是多条删除语句,影响效率;
*/
//数组中封装的是ID的集合;
String hql = "";
StringBuffer sb = new StringBuffer();
for(int i=0;i<ids.length;i++) {
if(i==0) {
hql = "empno="+ids[i];
} else {
hql =hql + " or empno="+ids[i];
}
}
sb.append("delete from Emp where ");
sb.append(hql);
System.out.println("HQL语句为:"+sb.toString());
Query q= sessionFactory.getCurrentSession().createQuery(sb.toString());
q.executeUpdate();
//调用DAO层的删除方法;
}
}
|
pojo
package com.demo.pojo;
import javax.persistence.*;
@Entity
public class Dept {
private int deptno;
private String deptname;
private String loc;
@Id
@GeneratedValue
@Column(name = "deptno")
public int getDeptno() {
return deptno;
}
public void setDeptno(int deptno) {
this.deptno = deptno;
}
@Basic
@Column(name = "deptname")
public String getDeptname() {
return deptname;
}
public void setDeptname(String deptname) {
this.deptname = deptname;
}
@Basic
@Column(name = "loc")
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Dept dept = (Dept) o;
if (deptno != dept.deptno) return false;
if (deptname != null ? !deptname.equals(dept.deptname) : dept.deptname != null) return false;
if (loc != null ? !loc.equals(dept.loc) : dept.loc != null) return false;
return true;
}
@Override
public int hashCode() {
int result = deptno;
result = 31 * result + (deptname != null ? deptname.hashCode() : 0);
result = 31 * result + (loc != null ? loc.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "Dept{" +
"deptno=" + deptno +
", deptname='" + deptname + '\'' +
", loc='" + loc + '\'' +
'}';
}
}
--------------------------------------------------------------------------------------------------------- <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.demo.pojo.Dept" table="dept" schema="emp">
<id name="deptno" column="deptno"/>
<property name="deptname" column="deptname"/>
<property name="loc" column="loc"/>
</class>
</hibernate-mapping>
---------------------------------------------------------------------------------------------------------------- package com.demo.pojo;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Objects;
@Entity
public class Emp {
private int empno;
private String empname;//名称
private String job;//岗位
private int mgr;//直属领导
private Timestamp hiredate;//入职时间
private Integer sal;//工资
private Integer comm;//奖金
private Integer deptno;//部门编号
private Dept dept;
@Id
@GeneratedValue
@Column(name = "empno")
public int getEmpno() {
return empno;
}
public void setEmpno(int empno) {
this.empno = empno;
}
@Basic
@Column(name = "empname")
public String getEmpname() {
return empname;
}
public void setEmpname(String empname) {
this.empname = empname;
}
@Basic
@Column(name = "job")
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
@Basic
@Column(name = "mgr")
public int getMgr() {
return mgr;
}
public void setMgr(int mgr) {
this.mgr = mgr;
}
@Basic
@Column(name = "hiredate")
public Timestamp getHiredate() {
return hiredate;
}
public void setHiredate(Timestamp hiredate) {
this.hiredate = hiredate;
}
@Basic
@Column(name = "sal")
public Integer getSal() {
return sal;
}
public void setSal(Integer sal) {
this.sal = sal;
}
@Basic
@Column(name = "comm")
public Integer getComm() {
return comm;
}
public void setComm(Integer comm) {
this.comm = comm;
}
@Basic
@Column(name = "deptno")
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
}
@Basic
@Column(name = "dept")
public Dept getDept() {
return dept;
}
public void setDept(Dept dept) {
this.dept = dept;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Emp emp = (Emp) o;
return empno == emp.empno &&
mgr == emp.mgr &&
Objects.equals(empname, emp.empname) &&
Objects.equals(job, emp.job) &&
Objects.equals(hiredate, emp.hiredate) &&
Objects.equals(sal, emp.sal) &&
Objects.equals(comm, emp.comm) &&
Objects.equals(deptno, emp.deptno) &&
Objects.equals(dept, emp.dept);
}
@Override
public int hashCode() {
return Objects.hash(empno, empname, job, mgr, hiredate, sal, comm, deptno, dept);
}
@Override
public String toString() {
return "Emp{" +
"empno=" + empno +
", empname='" + empname + '\'' +
", job='" + job + '\'' +
", mgr=" + mgr +
", hiredate=" + hiredate +
", sal=" + sal +
", comm=" + comm +
", deptno=" + deptno +
", dept=" + dept.getDeptno() +
", dept=" + dept.getDeptname() +
", dept=" + dept.getLoc() +
'}';
}
}
------------------------------------------------------------------------------------------------------------ <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.demo.pojo.Emp" table="emp" schema="emp">
<id name="empno" column="empno"/>
<property name="empname" column="empname"/>
<property name="job" column="job"/>
<property name="mgr" column="mgr"/>
<property name="hiredate" column="hiredate"/>
<property name="sal" column="sal"/>
<property name="comm" column="comm"/>
<property name="deptno" column="deptno"/>
<many-to-one name="dept" column="deptno" lazy="false" fetch="join" insert="false" update="false"></many-to-one>
</class>
</hibernate-mapping>
|
service
package com.demo.service;
import com.demo.pojo.Dept;
import com.demo.pojo.Emp;
import java.util.List;
public interface EmpService {
boolean add(Emp emp);
//删除
boolean deleteEmp(int id);
//编辑
boolean updateEmp(Emp emp);
//根据id查询一条数据
Emp selectById(int id);
int selectAll(String name, int dept);
//多条件查询
List<Emp> selectBynameordept(String name, int dept,int first,int fast);
//查询全部
List<Emp> selectEmp();
//查询所有部门
List<Dept> selectDept();
boolean delNews(long[] ids);
}
------------------------------------------------------------------------------------ package com.demo.service;
import com.demo.dao.EmpDao;
import com.demo.pojo.Dept;
import com.demo.pojo.Emp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Transactional(rollbackFor = Exception.class)
@Service("empService")
public class EmpServiceImpl implements EmpService {
@Resource
private EmpDao empDao;
@Override
public boolean add(Emp emp) {
empDao.add(emp);
return true;
}
@Override
public boolean deleteEmp(int id) {
empDao.deleteEmp(id);
return true;
}
@Override
public boolean updateEmp(Emp emp) {
empDao.updateEmp(emp);
return true;
}
@Override
public Emp selectById(int id) {
return empDao.selectById(id);
}
@Override
public int selectAll(String name, int dept){
return empDao.selectAll(name,dept);
}
@Override
public List<Emp> selectBynameordept(String name, int dept,int first,int fast) {
return empDao.selectBynameordept(name,dept,first,fast);
}
@Override
public List<Emp> selectEmp() {
return empDao.selectEmp();
}
@Override
public List<Dept> selectDept() {
return empDao.selectDept();
}
@Override
public boolean delNews(long[] ids) {
empDao.delNews(ids);
return true;
}
}
|
until
package com.demo.util;
import com.demo.pojo.Emp;
import java.util.List;
/**
* 分页类
*/
public class Page {
private int is_page=1;//当前页码
private int is_rows;//每一页显示的行数
private int is_allrow;//总行数
private int is_countpage;//总页码数
private List<Emp> lists;
public List<Emp> getLists() {
return lists;
}
public void setLists(List<Emp> lists) {
this.lists = lists;
}
public int getIs_page() {
return is_page;
}
public void setIs_page(int is_page) {
this.is_page = is_page;
}
public int getIs_rows() {
return is_rows;
}
public void setIs_rows(int is_rows) {
this.is_rows = is_rows;
}
public int getIs_allrow() {
return is_allrow;
}
public void setIs_allrow(int is_allrow) {
this.is_allrow = is_allrow;
// 6 3
this.is_countpage=is_allrow%is_rows==0 ? is_allrow/is_rows:(is_allrow/is_rows+1);
}
public int getIs_countpage() {
return is_countpage;
}
public void setIs_countpage(int is_countpage) {
this.is_countpage = is_countpage;
}
@Override
public String toString() {
return "Page{" +
"is_page=" + is_page +
", is_rows=" + is_rows +
", is_allrow=" + is_allrow +
", is_countpage=" + is_countpage +
", lists=" + lists +
'}';
}
}
|
版权声明:本文为qq_39134392原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。