博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java连接Oracle数据库的基类
阅读量:5149 次
发布时间:2019-06-13

本文共 6626 字,大约阅读时间需要 22 分钟。

作用:1.Java连接Oracle数据库  2.关闭连接  3.提供查询方法  4.提供增删改方法

1 BaseDao  2  package dao;  3  import java.sql.*;  4    5  /**  6   * @author 数据库操作基类  7   */  8  public class BaseDao {  9      public final static String DRIVER = "oracle.jdbc.driver.OracleDriver"; // 数据库驱动 10   11      public final static String URL = "jdbc:oracle:thin:@Perston-PC:1521:myhr"; // url 12   13      public final static String DBNAME = "system"; // 数据库用户名 14   15      public final static String DBPASS = "myhr"; // 数据库密码 16   17      /** 18       * 得到数据库连接 19       *  20       * @throws ClassNotFoundException 21       * @throws SQLException 22       * @return 数据库连接 23       */ 24      public Connection getConn() throws ClassNotFoundException, SQLException { 25          Connection conn = null; 26          try { 27              Class.forName(DRIVER); // 注册驱动 28              conn = DriverManager.getConnection(URL, DBNAME, DBPASS); // 获得数据库连接 29          } catch (SQLException e) { 30              e.printStackTrace(); 31          } 32          return conn; // 返回连接 33      } 34   35      /** 36       * 释放资源 37       *  38       * @param conn 39       *            数据库连接 40       * @param pstmt 41       *            PreparedStatement对象 42       * @param rs 43       *            结果集 44       */ 45      public void closeAll(Connection conn, PreparedStatement pstmt, ResultSet rs) { 46   47          /* 如果rs不空,关闭rs */ 48          if (rs != null) { 49              try { 50                  rs.close(); 51              } catch (SQLException e) { 52                  e.printStackTrace(); 53              } 54          } 55          /* 如果pstmt不空,关闭pstmt */ 56          if (pstmt != null) { 57              try { 58                  pstmt.close(); 59              } catch (SQLException e) { 60                  e.printStackTrace(); 61              } 62          } 63          /* 如果conn不空,关闭conn */ 64          if (conn != null) { 65              try { 66                  conn.close(); 67              } catch (SQLException e) { 68                  e.printStackTrace(); 69              } 70          } 71   72      } 73   74      /** 75       * 执行SQL语句,可以执行查询 76       *  77       * @param sql 78       *            预编译的 SQL 语句 79       * @param param 80       *            预编译的 SQL 语句中的‘?’参数的字符串数组 81       * @return 影响的条数 82       */ 83      public ResultSet executeQuerySQL(String preparedSql, String[] param) { 84          Connection conn = null; 85          PreparedStatement pstmt = null; 86          ResultSet rs = null; 87          // int num = 0; 88   89          /* 处理SQL,执行SQL */ 90          try { 91              conn = getConn(); // 得到数据库连接 92              pstmt = conn.prepareStatement(preparedSql); // 得到PreparedStatement对象 93              if (param != null) { 94                  for (int i = 0; i < param.length; i++) { 95                      pstmt.setString(i + 1, param[i]); // 为预编译sql设置参数 96                  } 97              } 98              rs = pstmt.executeQuery(); // 执行SQL语句 99          } catch (ClassNotFoundException e) {100              e.printStackTrace(); // 处理ClassNotFoundException异常101          } catch (SQLException e) {102              e.printStackTrace(); // 处理SQLException异常103          }104          return rs;105      }106  107      /**108       * 执行SQL语句,可以进行增、删、改的操作,不能执行查询109       * 110       * @param sql111       *            预编译的 SQL 语句112       * @param param113       *            预编译的 SQL 语句中的‘?’参数的字符串数组114       * @return 影响的条数115       */116      public int executeSQL(String preparedSql, Object[] param) {117          Connection conn = null;118          PreparedStatement pstmt = null;119          int num = 0;120  121          /* 处理SQL,执行SQL */122          try {123              conn = getConn(); // 得到数据库连接124              pstmt = conn.prepareStatement(preparedSql); // 得到PreparedStatement对象125              if (param != null) {126                  for (int i = 0; i < param.length; i++) {127                      pstmt.setObject(i + 1, param[i]); // 为预编译sql设置参数128                  }129              }130              // System.out.println(preparedSql);131              num = pstmt.executeUpdate(); // 执行SQL语句132          } catch (ClassNotFoundException e) {133              e.printStackTrace(); // 处理ClassNotFoundException异常134          } catch (SQLException e) {135              e.printStackTrace(); // 处理SQLException异常136          } finally {137              this.closeAll(conn, pstmt, null);138          }139          return num;140      }141  }142     /**143      * 执行SQL语句,可以执行查询144      * 145      * @param sql146      *            预编译的 SQL 语句147      * @param param148      *            预编译的 SQL 语句中的‘?’参数的字符串数组149      * @return 影响的条数150      */151     public ResultSet executeQuerySQL(String preparedSql, Object[] param) {152         Connection conn = null;153         PreparedStatement pstmt = null;154         ResultSet rs = null;155         // int num = 0;156 157         /* 处理SQL,执行SQL */158         try {159             conn = getCon(); // 得到数据库连接160             pstmt = conn.prepareStatement(preparedSql); // 得到PreparedStatement对象161             if (param != null) {162                 for (int i = 0; i < param.length; i++) {163                     pstmt.setObject(i + 1, param[i]); // 为预编译sql设置参数164                 }165             }166             rs = pstmt.executeQuery(); // 执行SQL语句167         } catch (SQLException e) {168             e.printStackTrace(); // 处理SQLException异常169         }170         return rs;171     }172 173     /**174      * 执行SQL语句,可以进行增、删、改的操作,不能执行查询175      * 176      * @param sql177      *            预编译的 SQL 语句178      * @param param179      *            预编译的 SQL 语句中的‘?’参数的字符串数组180      * @return 影响的条数181      */182     public int executeSQL(String preparedSql, Object[] param) {183         Connection conn = null;184         PreparedStatement pstmt = null;185         int num = 0;186 187         /* 处理SQL,执行SQL */188         try {189             conn = getCon(); // 得到数据库连接190             pstmt = conn.prepareStatement(preparedSql); // 得到PreparedStatement对象191             if (param != null) {192                 for (int i = 0; i < param.length; i++) {193                     pstmt.setObject(i + 1, param[i]); // 为预编译sql设置参数194                 }195             }196             // System.out.println(preparedSql);197             num = pstmt.executeUpdate(); // 执行SQL语句198         }catch (SQLException e) {199             e.printStackTrace(); // 处理SQLException异常200         } finally {201             this.closeAll(conn, pstmt, null);202         }203         return num;204     }

 

转载于:https://www.cnblogs.com/peston/archive/2012/12/17/2821133.html

你可能感兴趣的文章
代码详查中的自尊心
查看>>
[珠玑之椟]位向量/位图的定义和应用
查看>>
Root Pane Containers(一)
查看>>
php本地及远程文件包含漏洞
查看>>
[asp.net]网页与服务器的交互模型
查看>>
19-template转render写法
查看>>
大道至简
查看>>
(转)Altera对应的时序概念
查看>>
使用IDM下载软件下载百度云网盘里的资源,以Chrome浏览器为例
查看>>
JDBC 调用存储过程代码示例
查看>>
一周冲刺计划2//第二天
查看>>
给flash添加A链接
查看>>
OEA 中 WPF 树型表格整体重构
查看>>
今天第一帖
查看>>
前端大牛的职业生涯建议 原文
查看>>
IP 地址分类
查看>>
国家地区域名
查看>>
2018/3/26 省选模拟赛 60分
查看>>
201521123060 《Java程序设计》第5周学习总结
查看>>
Linux驱动程序学习备忘之六
查看>>