属性文件数据库配置
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 = "selectAREACODE,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;
}
页:
[1]