2014-10-02 3 views
0

Я столкнулся с действительно странной проблемой, я не знаю, как обращаться.Cant Conect to MySql в java с файлом свойств

Мое приложение подключается к базе данных MySQL, чтобы получать данные, до вчерашнего дня у меня были детали подключения, жестко закодированные в коде, и все работало нормально.

IE:

connect = DriverManager.getConnection("jdbc:mysql://10.0.0.188:3306", "dudug", "qazqaz"); 

Я решил сделать мое приложение более модульным и иметь возможность изменить/установить сведения о подключении, и сохраните его в файле свойств.

Теперь, когда я использую следующий код:

Class.forName("com.mysql.jdbc.Driver"); 

// setup the connection with the DB. 

String user = props.getProperty("SqlUserName"); 
String pass = props.getProperty("SqlPassword"); 
String port = String.valueOf(props.getProperty("SqlPort")); 
String addr = props.getProperty("SqlAddress"); 
connect = DriverManager.getConnection("\"jdbc:mysql://" + addr + ":" + port + "\",\"" + user + "\",\"" + pass + "\""); 

, я получаю сообщение об ошибке, как это:

java.sql.SQLException: No suitable driver found for "jdbc:mysql://10.0.0.188:3306?user=dudug&password=qazqaz" 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 

при отладке, обе строки выходного соединения являются то же:

«jdbc: mysql: //10.0.0.188: 3306», «dudug», «qazqaz»

Только когда я использую модульную строку, у меня возникает проблема.

У кого-нибудь есть идеи?

Thnaks,

Дэйв.

UPDATE:

когда это использовать это:

DriverManager.getConnection("jdbc:mysql://" + props.getProperty("SqlAddress") + ":" + String.valueOf(props.getProperty("SqlPort")) 
+ "," + props.getProperty("SqlUserName") + "," + props.getProperty("SqlPassword")); 

или это:

String user = props.getProperty("SqlUserName"); 
String pass = props.getProperty("SqlPassword"); 
String port = String.valueOf(props.getProperty("SqlPort")); 
String addr = props.getProperty("SqlAddress"); 

connect = DriverManager.getConnection("jdbc:mysql://" + addr + ":" + port + "," + user + "," + pass); 

его просто застревает, не предоставлявшие никакого сообщения об ошибке.

+0

Вы должны иметь разъем MySQL в вашем пути к классам. Загрузите его с http://dev.mysql.com/downloads/connector/j/5.1.html –

+0

Что это значит? –

+0

Вы добавили библиотеку соединителей mysql в файлы вашей библиотеки? – CodeMonkey

ответ

1

Проблема заключается в том, что вы пытаетесь создать список параметров метода getConnection().

"\"jdbc:mysql://" + addr + ":" + port + "\",\"" + user + "\",\"" + pass + "\""); 

вычисляет

"jdbc:mysql://10.0.0.188:3306","dudug","qazqaz" 

Это одинString, даже если это выглядит как обычный список параметров. Например.это вызывается:

DriverManager.getConnection("\"jdbc:mysql://10.0.0.188:3306\",\"dudug\",\"quazquaz\""); 

и не

DriverManager.getConnection("jdbc:mysql://10.0.0.188:3306", "dudug", "qazqaz"); 

То, что вы хотите сделать, это:

String url = "jdbc:mysql://" + addr + ":" + port; 
DriverManager.getConnection(url, user, password); 
1

Загрузите mysql-connector-java.jar и добавьте его в свой путь к классу.

+0

он уже существует: «MySQL-connector-java-5.1.33-bin.jar», я могу подключиться к MySQL просто не при использовании данных из файла prop! –