Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > хранение настроек соединения


Автор: persten 30.10.2011, 12:44
пишу веб приложние, работающее с  mysql

ConnectionSettings.java:
Код

package db;

public class ConnectionSettings {
    public static String url = "jdbc:mysql://localhost/mysql_db";
    public static String userName = "username";
    public static String password = "userpass";
}


TestMysqlWork.java:
Код

package db;
import java.sql.*;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

public class TestMysqlWork {
    protected static Connection conn = null;
    protected static Statement stmt = null;
    
    public static void connect() throws Exception
    {
        try
        {
            if( conn == null )
            {
                Class.forName ("com.mysql.jdbc.Driver").newInstance();
                //conn = DriverManager.getConnection (ConnectionSettings.url, ConnectionSettings.userName, ConnectionSettings.password);
                
                MysqlDataSource MDS = new MysqlDataSource();
                
                MDS.setURL(ConnectionSettings.url);
                MDS.setUser(ConnectionSettings.userName);
                MDS.setPassword(ConnectionSettings.password);
                MDS.setCharacterEncoding("utf8");
                
                conn = MDS.getConnection();
                
                stmt = conn.createStatement();
            }
        }
        catch( SQLException Ex )
        {
            throw new Exception( "MerchantsData.connect: SQLException: " + Ex.getMessage() );
        }
        catch( Exception Ex )
        {
            throw new Exception( "MerchantsData.connect: Exception: " + Ex.getMessage() );
        }
    }
    
    // .... функции работающие с  connect
}


подскажите как можно хранить настройки соединения (например в каком нибудь внешнем файле), 
чтобы их можно было легко поправить и в то же время никто посторонний не мог получить доступ к ним?

Автор: Samotnik 30.10.2011, 15:39
Цитата(persten @  30.10.2011,  12:44 Найти цитируемый пост)
подскажите как можно хранить настройки соединения (например в каком нибудь внешнем файле), 
чтобы их можно было легко поправить 

Использовать property файл

Цитата(persten @  30.10.2011,  12:44 Найти цитируемый пост)
 и в то же время никто посторонний не мог получить доступ к ним?

Это что значит ?

Автор: persten 30.10.2011, 18:53
Цитата(Samotnik @ 30.10.2011,  15:39)
Цитата(persten @  30.10.2011,  12:44 Найти цитируемый пост)
подскажите как можно хранить настройки соединения (например в каком нибудь внешнем файле), 
чтобы их можно было легко поправить 

Использовать property файл

Цитата(persten @  30.10.2011,  12:44 Найти цитируемый пост)
 и в то же время никто посторонний не мог получить доступ к ним?

Это что значит ?

спасибо за подсказку про проперти файл

про посторонний доступ имел в виду чтобы нельзя было увидеть через сайт этот файл, т.е http://адрес_сайта/путь_к_файлу/myApp.properties

Автор: Stolzen 30.10.2011, 19:15
Цитата(persten @  30.10.2011,  19:53 Найти цитируемый пост)
про посторонний доступ имел в виду чтобы нельзя было увидеть через сайт этот файл, т.е http://адрес_сайта/путь_к_файлу/myApp.properties

Класть этот файл куда-нибудь в classpath

Автор: Samotnik 31.10.2011, 16:53
Цитата(persten @  30.10.2011,  18:53 Найти цитируемый пост)
про посторонний доступ имел в виду чтобы нельзя было увидеть через сайт этот файл, т.е http://адрес_сайта/путь_к_файлу/myApp.properties

Опять много загадок.
Если планируется обычное веб приложение, которое будет крутиться на томкате, то можно положить много куда, главное не в /webapps/название_проекта

Автор: LSD 31.10.2011, 17:20
Обычно для соединения с базой используют http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html. Хранить настройки соединения с базой, внутри приложения очень плохая идея. Что если понадобится переключится на другую базу или сменить пароль? Пересобирать приложение?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)