/*** */
package org.dao.impl;import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import org.dao.BaseDao;
import org.entity.Dept;
import org.entity.Emp;/***
*
* 项目名称:test_BaseDao
* 类名称:BaseDaoUtilImpl ,继承BaseDao
* 类描述: 公共的实现类
* 创建人:Mu Xiongxiong
* 创建时间:2017-9-10 上午11:08:25
* 修改人:Mu Xiongxiong
* 修改时间:2017-9-10 上午11:08:25
* 修改备注:
* @version
**/
public class BaseDaoUtilImpl<T> extends BaseDao {/*** * @Description: 该方法的主要作用:添加数据(Emp和Dept的)* @Title: save* @param @param entity 实体* @param @param tag 区分是Emp还是Dept* @param @return 设定文件 * @return 返回类型:int 大于0成功,否则失败* @throws*/public int save(T entity,String tag) {int rel = 0;String sql = "";List<Object> prams = new ArrayList<Object>(); if(tag.equals("emp")){Emp emp = (Emp) entity; //初始化Emp对象//添加员工sql = "insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values(?,?,?,?,to_date(?, 'YYYY-MM-DD HH24:MI:SS '),?,?,?)"; //sql语句try {prams.add(emp.getEmpno());prams.add(emp.getEname());prams.add(emp.getJob());prams.add(emp.getMgr());prams.add(emp.getHiredate());prams.add(emp.getSal());prams.add(emp.getComm());prams.add(emp.getDeptno());rel = executeUpdate(sql, prams);} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally{closeConnnection(); //关闭连接}return rel;}else if (tag.equals("dept")) {//添加部门 Dept dept = (Dept) entity; //初始化Dept对象sql = "insert into dept values(?,?,?)"; //sql语句try {prams.add(dept.getDeptno());prams.add(dept.getDname());prams.add(dept.getLoc());rel = executeUpdate(sql, prams);} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally{closeConnnection(); //关闭连接}return rel;}return 0; //此处执行不到,也可以写成return null;}/*** * @Description: 该方法的主要作用:修改数据* @Title: update* @param @param entity* @param @return 设定文件 * @return 返回类型:int * @throws*/public int update(T entity,String tag) {int rel = 0;String sql = "";List<Object> prams = new ArrayList<Object>(); if(tag.equals("emp")){Emp emp = (Emp) entity; //初始化Emp对象//修改员工sql = "update emp set ename = ?,job=?,mgr=?,hiredate=to_date(?, 'YYYY-MM-DD HH24:MI:SS ') ,sal=?,comm=?,deptno=? where empno=?"; //sql语句try {prams.add(emp.getEname());prams.add(emp.getJob());prams.add(emp.getMgr());prams.add(emp.getHiredate());prams.add(emp.getSal());prams.add(emp.getComm());prams.add(emp.getDeptno());prams.add(emp.getEmpno());rel = executeUpdate(sql, prams);} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally{closeConnnection(); //关闭连接}return rel;}else if (tag.equals("dept")) {//修改部门 Dept dept = (Dept) entity; //初始化Dept对象sql = "update dept set dname=?,loc=? where deptno =?"; //sql语句try {prams.add(dept.getDname());prams.add(dept.getLoc());prams.add(dept.getDeptno());rel = executeUpdate(sql, prams);} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally{closeConnnection(); //关闭连接}return rel;}return 0; //此处执行不到,也可以写成return null;}/*** * @Description: 该方法的主要作用:删除数据* @Title: delete* @param @param id* @param @return 设定文件 * @return 返回类型:int * @throws*/public int delete(int id,String tag) {int rel = 0;String sql = "";List<Object> prams = new ArrayList<Object>(); if(tag.equals("emp")){//删除员工sql = "delete from emp where empno = ?"; //sql语句try {prams.add(id);rel = executeUpdate(sql, prams);} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally{closeConnnection(); //关闭连接}return rel;}else if (tag.equals("dept")) {//删除部门 sql = "delete from dept where deptno =?"; //sql语句try {prams.add(id);rel = executeUpdate(sql, prams);} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally{closeConnnection(); //关闭连接}return rel;}return 0; //此处执行不到,也可以写成return null;}/*** * @Description: 该方法的主要作用:根据编号查询* @Title: queryById* @param @param id* @param @return 设定文件 * @return 返回类型:T * @throws*/@SuppressWarnings("unchecked")public T queryById(int id,String tag) {String sql = "";List<Object> prams = new ArrayList<Object>(); if(tag.equals("emp")){//查询员工Emp emp = null;sql = "select * from emp where empno = ?"; //sql语句try {prams.add(id);ResultSet rs = executeQuery(sql, prams);if(rs.next()){emp = new Emp(); emp.setEmpno(rs.getInt(1));emp.setEname(rs.getString(2));emp.setJob(rs.getString(3));emp.setMgr(rs.getInt(4));emp.setHiredate(rs.getString(5));emp.setSal(rs.getFloat(6));emp.setComm(rs.getFloat(7));emp.setDeptno(rs.getInt(8));}} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally{closeConnnection(); //关闭连接}return (T) emp;}else if (tag.equals("dept")) {//查询部门 sql = "select * from dept where deptno =?"; //sql语句Dept dept = null;try {prams.add(id);ResultSet rs = executeQuery(sql, prams);if(rs.next()){dept = new Dept(); dept.setDeptno(rs.getInt(1));dept.setDname(rs.getString(2));dept.setLoc(rs.getString(3));}} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally{closeConnnection(); //关闭连接}return (T)dept;}return null; //此处执行不到,也可以写成return null;}/*** * @Description: 该方法的主要作用:查询全部* @Title: queryAll* @param @return 设定文件 * @return 返回类型:List<T> * @throws*/@SuppressWarnings("unchecked")public List<T> queryAll(String tag) {String sql = "";if(tag.equals("emp")){//查询员工sql = "select * from emp"; //sql语句Emp emp = null;List<Emp> empList = new ArrayList<Emp>();try {ResultSet rs = executeQuery(sql, null);while(rs.next()){emp = new Emp(); emp.setEmpno(rs.getInt(1));emp.setEname(rs.getString(2));emp.setJob(rs.getString(3));emp.setMgr(rs.getInt(4));emp.setHiredate(rs.getString(5));emp.setSal(rs.getFloat(6));emp.setComm(rs.getFloat(7));emp.setDeptno(rs.getInt(8));empList.add(emp);}} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally{closeConnnection(); //关闭连接}return (List<T>) empList;}else if (tag.equals("dept")) {//添加部门 sql = "select * from dept"; //sql语句Dept dept = null;List<Dept> deptList = new ArrayList<Dept>();try {ResultSet rs = executeQuery(sql, null);while(rs.next()){dept = new Dept(); dept.setDeptno(rs.getInt(1));dept.setDname(rs.getString(2));dept.setLoc(rs.getString(3));deptList.add(dept);}} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally{closeConnnection(); //关闭连接}return (List<T>)deptList;}return null; //此处执行不到,也可以写成return null;}}