2012-03-12 16 views
1

ファイルにmysqlデータベースのURL、ユーザー名、パスワードを配置するにはどうしたらいいですか?ハードコードする代わりに、自分のjavaコードで使用するにはどうすればアクセスできますか?私はgoogleを試みましたが、明確な方向を得ていませんmysqlデータベースのURL、ユーザー名とパスワード

+1

あなたはあなたのために、設定ファイルのいくつかの種類を作成することを意味しますJavaアプリケーションですか? – tadman

+0

はい。これは今のところ最高のスイートですが、コードで指定した後にアプリケーションを実行することができます。これはファイルでうまくいくでしょう。 – ken

答えて

3

properties fileを作成してください。ロードすることができますthe Properties API

など。 config.properties

url = jdbc:mysql://localhost:3306/dbname 
username = foo 
password = bar 

次のように次に、あなたがそれをロードして読むことができます(あなたがクラスパスにそれを配置した後):

Properties config = new Properties(); 
config.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties")); 

String url = config.getProperty("url"); 
String username = config.getProperty("username"); 
String password = config.getProperty("password"); 
// ... 
+0

コード@BalusCをありがとう。私はそれを試してみましょう。私はプロパティファイルを作成する方法を知りません。 – ken

+0

それは単なるテキストファイルです。必要なテキストエディタを使用します。例えば。メモ帳 – BalusC

+0

ありがとうございます。プロパティファイルを作成し、パスを指定するいくつかの問題がありましたが、最終的に完了しました – ken

0
/** 
* Function that connects to a DB and data fro connection is loaded from a properties file 
* @param fileName 
* @return the connection to DB or null if any problem 
*/ 
public java.sql.Connection connect_to_database_from_properties(String fileName) 
{ 
    Properties prop = new Properties(); 

    InputStream is; 
    try { 
     is = new FileInputStream(fileName); 

    prop.load(is); 
    String url=prop.getProperty("url"); 
    String un=prop.getProperty("username"); 
    String pass=prop.getProperty("password"); 
    System.out.println("URL: "+url+" UN: "+un+" PASS: "+pass); 
    is.close(); 
    Class.forName("com.mysql.jdbc.Driver"); 

    java.sql.Connection conection =DriverManager.getConnection(url, un, pass); 
    return conection; 

    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (ClassNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return null; 

} 
関連する問題