属性文件数据库配置

1.Oracle

做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.
3.import java.sql.Connection;
4.import java.sql.DriverManager;
5.import java.sql.ResultSet;
6.import java.sql.SQLException;
7.import java.sql.Statement;
8.import java.util.ResourceBundle;
9.
10.public class DBUtils {
11.    private static final String OPTION_FILE_NAME = "demo_db";
12.
13.    private static String drivers;
14.
15.    private static String url;
16.
17.    private static String user;
18.
19.    private static String password;
20.    static {
21.        ResourceBundle res = ResourceBundle.getBundle(OPTION_FILE_NAME);
22.        drivers = res.getString("DRIVERS").trim();
23.        url = res.getString("URL").trim();
24.        user = res.getString("USER").trim();
25.        password = res.getString("PASSWORD").trim();
26.    }
27.
28.    public static Connection getConnection() throws SQLException {
29.        Connection conn = null;
30.        try {
31.            Class.forName(drivers).newInstance();
32.            conn = DriverManager.getConnection(url, user, password);
33.        } catch (Exception e) {
34.            e.printStackTrace();
35.        }
36.        if (conn == null) {
37.            throw new SQLException("ctcjz.DBUtils: Cannot get connection.");
38.        }
39.        return conn;
40.    }
41.
42.    public static void close(Connection conn) {
43.        if (conn == null)
44.            return;
45.        try {
46.            conn.close();
47.        } catch (SQLException e) {
48.            System.out.println("ctcjz.DBUtils: Cannot close connection.");
49.        }
50.    }
51.
52.    public static void close(Statement stmt) {
53.        try {
54.            if (stmt != null) {
55.                stmt.close();
56.            }
57.        } catch (SQLException e) {
58.            System.out.println("ajax.DBUtils: Cannot close statement.");
59.        }
60.
61.    }
62.
63.    public static void close(ResultSet rs) {
64.        try {
65.            if (rs != null) {
66.                rs.close();
67.            }
68.        } catch (SQLException e) {
69.            System.out.println("ctcjz.DBUtils: Cannot close resultset.");
70.        }
71.    }
72.
73.}
        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.        }

2.sqlsever

Java中提供了Properties类用来读取属性文件。

第一步:首先我们在项目默认路径(src)下创建文件,名称为db.properties(名称可自定义,但扩展名必须为properties),内容如下

driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://localhost:1433;DatabaseName=FileManager
user=admin
password=123

第二步:读取属性文件

1、我们建立一个类文件,取名Judge.java,来实现对db.properties文件的加载工作,具体代码如下:

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class Judge extends Properties {
     private static Judge instance;

     public static Judge getInstance() {
        if (instance != null) {
             return instance;
         } else {
             makeInstance();
             return instance;
         }
     }
     private static synchronized void makeInstance() {
         if (instance == null) {
             instance = new Judge();
         }
     }
     private Judge() {
         InputStream is = getClass().getResourceAsStream( "/db.properties");
         try {
             load(is);
         } catch (IOException e) {
             System.out.println("文件读取失败,请确认db.properties文件是否存在。");
         }
     }
}

2、我们建立ConnectionManager类来建立数据库的连接(此处我只写了一个连接方法)

private static Connection getCon() {
     Connection con = null;
      try {
          //读取db.properties配置文件
          String driver = Judge.getInstance().getProperty("driver");
          String url = Judge.getInstance().getProperty("url");
          String user = Judge.getInstance().getProperty("user");
          String password = Judge.getInstance().getProperty("password");
          Class.forName(driver);
          con = DriverManager.getConnection(url, user, password);
      } catch (Exception e) {
          e.printStackTrace();
      }
      return con;
}


你可能感兴趣的:(oracle,sql,Ajax,json,jdbc)