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

简介: Servlet使用适配器模式进行增删改查案例(BaseDao.java)
package org.dao;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Properties;
/**
 * 
*    
* 项目名称:二期结业项目   
* 类名称:BaseDao   
* 类描述:   数据库操作常用类
* 创建人:Mu Xiongxiong  
* 创建时间:2017-9-7 上午10:37:53   
* 修改人:Mu Xiongxiong   
* 修改时间:2017-9-7 上午10:37:53   
* 修改备注:   
* @version    
*
 */
public class BaseDao {
  private static      Connection              con             =         null;
  //数据库驱动
  private static      String                driver            =         "";
  
  //连接字符串
  private static      String                url             =         "";
  
  //数据库用户名
  private static      String                user            =         "";
  
  //密码
  private static      String                pwd             =         "";
  
  //初始化PreparedStatement,编译sql语句
  private static      PreparedStatement           ps              =         null;
  
  //初始化ResultSet数据集
  private static      ResultSet               rs              =         null;
  
    
  /**
   * 
  * @Description: 该方法的主要作用:打开连接,连接数据库
  * @Title: getConnection
  * @param  @return
  * @param  @throws ClassNotFoundException
  * @param  @throws SQLException 设定文件  
  * @return  返回类型:Connection   
  * @throws
   */
  public static Connection getConnection() throws ClassNotFoundException, SQLException{
    Properties pro = new Properties();
      try {
     //  pro.load(BaseDao.class.getResourceAsStream("jdbc.properties"));
        pro.load(new FileReader("src\\jdbc.properties"));
      } catch (IOException e1) {
       e1.printStackTrace();
      }
       url        =         pro.getProperty("url");
       user       =         pro.getProperty("username");
       pwd      =         pro.getProperty("password");
       driver       =         pro.getProperty("driver");
    Class.forName(driver);
    if(con==null){
      con = DriverManager.getConnection(url,user,pwd);
    }
    return con;
  }
  
  /**
   * 
  * @Description: 该方法的主要作用:增删改通用的方法
  * @Title: executeUpdate
  * @param  @param sql
  * @param  @param prams
  * @param  @return
  * @param  @throws ClassNotFoundException
  * @param  @throws SQLException 设定文件  
  * @return  返回类型:int   
  * @throws
   */
  public static int executeUpdate(String sql,List<Object> prams) throws ClassNotFoundException, SQLException{
    int       rel     =     0;
            con       =       getConnection();
            ps      =     con.prepareStatement(sql);
    if(prams!=null){
      for (int i = 0; i <prams.size(); i++) {
        ps.setObject(i+1, prams.get(i));
      }
    }
            rel     =   ps.executeUpdate(); 
    return rel;
  }
  
  /**
   * @throws SQLException 
   * @throws ClassNotFoundException 
   * 
  * @Description: 该方法的主要作用:查询的通用方法
  * @Title: executeQuery
  * @param  @param sql
  * @param  @param prams
  * @param  @return 设定文件  
  * @return  返回类型:ResultSet   
  * @throws
   */
  public static ResultSet executeQuery(String sql,List<Object>prams) throws ClassNotFoundException, SQLException{
    con     =     getConnection();
    ps    =     con.prepareStatement(sql);
    if(prams!=null){
      for (int i = 0; i < prams.size(); i++) {
        ps.setObject(i+1, prams.get(i));
      }
    }
    rs      =   ps.executeQuery();
    return rs;
  }
  
  /**
   * 
  * @Description: 该方法的主要作用:关闭资源
  * @Title: closeConnnection
  * @param   设定文件  
  * @return  返回类型:void   
  * @throws
   */
  public static void closeConnnection(){
  //关闭之前先判断是否为null
    if(rs!=null){
      try {
        rs.close();
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    if(ps!=null){
      try {
        ps.close();
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    
    if(con!=null){
      try {
        con.close();
        con=null;
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    
  }
  
  public static void main(String[] args) {
    try {
      System.out.println(getConnection());
    } catch (ClassNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
  
}


相关文章
|
9天前
|
设计模式 Java 程序员
Java设计模式-适配器模式(8)
Java设计模式-适配器模式(8)
|
2月前
|
人工智能 Java 定位技术
人工智能ChatGPT 体验案例:使用ChatGPT实现java扫雷小游戏
这篇文章通过一个使用ChatGPT实现的Java扫雷小游戏案例,展示了ChatGPT在编程领域的应用能力。文章中包含了扫雷游戏的Java代码实现,代码中初始化了雷区地图,随机放置雷,计算每个格子周围雷的数量,并提供了一个简单的文本界面与用户交互进行游戏。游戏通过控制台输入接受玩家的指令,并给出相应的反馈。
人工智能ChatGPT 体验案例:使用ChatGPT实现java扫雷小游戏
|
2月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
23 3
|
2月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
26 1
|
2月前
|
监控 算法 安全
Java并发编程案例分析:死锁的检测与解决
Java并发编程案例分析:死锁的检测与解决
25 2
|
2月前
|
安全 Java API
精通 Java 后台开发:案例分析与实践
精通 Java 后台开发:案例分析与实践
37 2
|
2月前
|
Java
Java枚举使用的基本案例
这篇文章是关于Java枚举的基本使用,通过一个指令下发的代码案例,展示了如何定义枚举、使用枚举以及如何通过枚举实现指令的匹配和处理。
|
2月前
|
设计模式 XML 存储
【六】设计模式~~~结构型模式~~~适配器模式(Java)
文章详细介绍了适配器模式(Adapter Pattern),这是一种结构型设计模式,用于将一个类的接口转换成客户期望的另一个接口,使原本不兼容的接口能够一起工作,提高了类的复用性和系统的灵活性。通过对象适配器和类适配器两种实现方式,展示了适配器模式的代码应用,并讨论了其优点、缺点以及适用场景。
|
2月前
|
设计模式 Java
常用设计模式介绍~~~ Java实现 【概念+案例+代码】
文章提供了一份常用设计模式的全面介绍,包括创建型模式、结构型模式和行为型模式。每种设计模式都有详细的概念讲解、案例说明、代码实例以及运行截图。作者通过这些模式的介绍,旨在帮助读者更好地理解源码、编写更优雅的代码,并进行系统重构。同时,文章还提供了GitHub上的源码地址,方便读者直接访问和学习。
常用设计模式介绍~~~ Java实现 【概念+案例+代码】
|
2月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
18 0
下一篇
无影云桌面