Servlet使用适配器模式进行增删改查案例(BaseDaoUtilImpl.java)

简介: Servlet使用适配器模式进行增删改查案例(BaseDaoUtilImpl.java)
/**
 * 
 */
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;
  }
}


目录
相关文章
|
21天前
|
设计模式 监控 Java
Java多线程基础-11:工厂模式及代码案例之线程池(一)
本文介绍了Java并发框架中的线程池工具,特别是`java.util.concurrent`包中的`Executors`和`ThreadPoolExecutor`类。线程池通过预先创建并管理一组线程,可以提高多线程任务的效率和响应速度,减少线程创建和销毁的开销。
35 2
|
21天前
|
安全 Java
Java多线程基础-10:代码案例之定时器(一)
`Timer` 是 Java 中的一个定时器类,用于在指定延迟后执行指定的任务。它常用于实现定时任务,例如在网络通信中设置超时或定期清理数据。`Timer` 的核心方法是 `schedule()`,它可以安排任务在延迟一段时间后执行。`
44 1
|
3天前
|
Java 关系型数据库 MySQL
servlet+jsp+jdbc 实现增删改查 的同学录
servlet+jsp+jdbc 实现增删改查 的同学录
|
3天前
|
搜索推荐 Java 程序员
【案例解析】从菜鸟到高手,如何优雅地使用Java条件语句?
【6月更文挑战第14天】本文介绍了Java编程中条件语句的重要性,特别是if-else和switch的使用。通过四个案例,展示了如何优雅地运用这些语句:案例一演示了基础if-else用于用户登录响应;案例二利用switch处理枚举类型,如订单状态;案例三展示了条件语句的嵌套与组合,用于游戏评分系统;案例四探讨了代码优化与重构,减少冗长的if-else结构。文章强调,掌握条件语句能提升编码效率和代码质量,鼓励开发者不断实践以写出高效优雅的代码。
|
11天前
|
Java
Java——Stream流(2/2):Stream流的中间方法、终结方法(方法、案例演示)
Java——Stream流(2/2):Stream流的中间方法、终结方法(方法、案例演示)
10 0
|
19天前
|
存储 安全 Java
Java的servlet和jsp技术
Java的servlet和jsp技术
32 11
|
21天前
|
存储 Java 调度
Java多线程基础-11:工厂模式及代码案例之线程池(二)
这篇内容介绍了Java多线程基础,特别是线程池中的定时器和拒绝策略。
26 0
|
21天前
|
Java 调度
Java多线程基础-10:代码案例之定时器(二)
Java 多线程基础中,定时器(Timer)的实现通常使用 `PriorityBlockingQueue` 和 `wait/notify` 机制来管理任务。
21 0
|
21天前
|
存储 安全 Java
Java多线程基础-9:代码案例之阻塞队列(二)
Java多线程基础教程系列中,介绍了如何实现一个简单的阻塞队列(非泛型版本)。
25 0
|
21天前
|
消息中间件 存储 负载均衡
Java多线程基础-9:代码案例之阻塞队列(一)
阻塞队列是一种遵循先进先出原则的线程安全数据结构,它在队列满时会阻塞入队操作,队列空时会阻塞出队操作,常用于多线程间的协作,简化同步代码编写。Java中提供了`BlockingQueue`接口及其实现类,如`ArrayBlockingQueue`和`LinkedBlockingQueue`,用于实现生产者-消费者模型,以实现负载均衡和资源的有效利用,如削峰填谷,降低系统压力。
27 0