java通过配置属性文件连接Oracle数据库

来源:互联网 发布:生意参谋数据怎么导出 编辑:程序博客网 时间:2024/05/29 14:15
     做web项目开发中,通过配置属性文件实现连接数据库(Oracle)的功能。
   1.将属性文件放在WEB-INF/classes目录下
     例如属性文件:demo_db.properties
     DRIVERS=oracle.jdbc.driver.OracleDriver
     URL=jdbc:oracle:thin:@localhost:1521:MyOra
     USER=user
     PASSWORD=123456
   2.写一个连接数据库的类
    例如:DBUtils.java
  1. package com.ctcjz.db;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7. import java.util.ResourceBundle;
  8. public class DBUtils {
  9.     private static final String OPTION_FILE_NAME = "demo_db";
  10.     private static String drivers;
  11.     private static String url;
  12.     private static String user;
  13.     private static String password;
  14.     static {
  15.         ResourceBundle res = ResourceBundle.getBundle(OPTION_FILE_NAME);
  16.         drivers = res.getString("DRIVERS").trim();
  17.         url = res.getString("URL").trim();
  18.         user = res.getString("USER").trim();
  19.         password = res.getString("PASSWORD").trim();
  20.     }
  21.     public static Connection getConnection() throws SQLException {
  22.         Connection conn = null;
  23.         try {
  24.             Class.forName(drivers).newInstance();
  25.             conn = DriverManager.getConnection(url, user, password);
  26.         } catch (Exception e) {
  27.             e.printStackTrace();
  28.         }
  29.         if (conn == null) {
  30.             throw new SQLException("ctcjz.DBUtils: Cannot get connection.");
  31.         }
  32.         return conn;
  33.     }
  34.     public static void close(Connection conn) {
  35.         if (conn == null)
  36.             return;
  37.         try {
  38.             conn.close();
  39.         } catch (SQLException e) {
  40.             System.out.println("ctcjz.DBUtils: Cannot close connection.");
  41.         }
  42.     }
  43.     public static void close(Statement stmt) {
  44.         try {
  45.             if (stmt != null) {
  46.                 stmt.close();
  47.             }
  48.         } catch (SQLException e) {
  49.             System.out.println("ajax.DBUtils: Cannot close statement.");
  50.         }
  51.     }
  52.     public static void close(ResultSet rs) {
  53.         try {
  54.             if (rs != null) {
  55.                 rs.close();
  56.             }
  57.         } catch (SQLException e) {
  58.             System.out.println("ctcjz.DBUtils: Cannot close resultset.");
  59.         }
  60.     }
  61. }
        3.具体使用
  1. //获取指标列表
  2.         String getAreaList() {
  3.             JSONArray array = new JSONArray(); //定义JSON数组
  4.             String sql = "select  AREACODE,AREANAME,STATUS from modelarea";//定义SQL语句
  5.             Connection conn = null//声明Connection对象
  6.             PreparedStatement pstmt = null//声明PreparedStatement对象
  7.             ResultSet rs = null//声明ResultSet对象
  8.             try {
  9.                 conn = DBUtils.getConnection(); //获取数据库连接
  10.                 pstmt = conn.prepareStatement(sql); //根据sql创建PreparedStatement
  11.                 rs = pstmt.executeQuery(); //执行查询,返回结果集
  12.                 while (rs.next()) {
  13.                     JSONObject obj = new JSONObject();
  14.                     obj.put("areaCode", rs.getString(1));
  15.                     obj.put("areaName", rs.getString(2));
  16.                     obj.put("status", rs.getString(3));
  17.                     array.add(obj);
  18.                 }
  19.             } catch (SQLException e) {
  20.                 System.out.println(e.toString());
  21.             } finally {
  22.                 DBUtils.close(rs); //关闭结果集
  23.                 DBUtils.close(pstmt); //关闭PreparedStatement
  24.                 DBUtils.close(conn); //关闭连接
  25.             }
  26.             return array.toString();
  27.         }
原创粉丝点击