JAVA-JDBC-Properties配置文件形式操作數據庫


開發中獲得連接的4個參數(驅動、URL、用戶名、密碼)通常都存在配置文件中,方便后期維護,程序如果需要更換數據庫,只需要修改配置文件即可。

通常情況下,我們習慣使用properties文件,此文件我們將做如下要求:

  1. 文件位置:任意,建議src下
  2. 文件名稱:任意,擴展名為properties
  3. 文件內容:一行一組數據,格式是“key=value”.

a)         key命名自定義,如果是多個單詞,習慣使用點分隔。例如:jdbc.driver

b)        value值不支持中文,如果需要使用非英文字符,將進行unicode轉換。

1、src目錄下創建Properties文件

 

 2、對應properties文件處理,開發中也使用Properties對象進行。我們將采用加載properties文件獲得流,然后使用Properties對象進行處理。

package cn.bruce.Properties;

import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

//開發中獲得連接的4個參數(驅動、URL、用戶名、密碼)通常都存在配置文件中,方便后期維護,程序如果需要更換數據庫,只需要修改配置文件即可。
//通常情況下,我們習慣使用properties文件,此文件我們將做如下要求:
//1.    文件位置:任意,建議src下
//2.    文件名稱:任意,擴展名為properties
//3.    文件內容:一行一組數據,格式是“key=value”.

public class JDBCUtils {
    private static String driverClass, url, usename, password;
    private static Connection con;
    // 靜態代碼塊只執行一次
    static
    {
        try
        {
            con();
//            con1();
            Class.forName(driverClass);
            con = DriverManager.getConnection(url, usename, password);
        } catch (Exception e)
        {
            e.printStackTrace();
            throw new RuntimeException("數據庫連接失敗!");
        }
    }

    public static Connection getcon() {
        return con;
    }

    // 1、第一種方法 input流+load(InputStream)
    //這種方法可以不在項目根目錄建立properties文件  只在SRC目錄下建立
    private static void con() throws IOException {
        Properties pro = new Properties();
        InputStream in = JDBCUtils.class.getClassLoader().getResourceAsStream("database.properties");
        pro.load(in);
        driverClass = pro.getProperty("driverClass");
        url = pro.getProperty("url");
        usename = pro.getProperty("usename");
        password = pro.getProperty("password");
    }

    // 第二種方法
    // 1 使用Properties處理流
    // 使用load()方法加載指定的流
    //在項目跟目錄下,創建文件,輸入“db.properties”文件名。
    private static void con1() throws Exception {
        Properties po = new Properties();
        Reader r = new FileReader("database.properties");
        po.load(r);
        driverClass = po.getProperty("driverClass");
        url = po.getProperty("url");
        usename = po.getProperty("usename");
        password = po.getProperty("password");
    }
}

3、測試

package cn.bruce.Properties;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class JDBCUtilsTest {
    public static void main(String[] args) {
        Connection connection = JDBCUtils.getcon();
        System.out.println(connection);
        try
        {
            PreparedStatement ps = connection.prepareStatement("select * from users;");
            ResultSet rs = ps.executeQuery();
            while (rs.next())
            {
                System.out.println(rs.getString("zusename") + "  " + rs.getString("zpassword"));
            }
        } catch (Exception e)
        {
            e.printStackTrace();
        }

    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM