Как получить доступ к другой базе данных MySQL через систему Java? - PullRequest
0 голосов
/ 15 февраля 2012

Как получить доступ к другой системной базе данных mysql через java-программу? Я использую следующую программу, но у меня возникает ошибка связи? Какие изменения необходимы для подключения другой системной базы данных mysql?

  Public void dbconnection() {

            String name = "";
            String port = "3306";
            String user = "system";
            String pass = "system";
            String dbname = "cascade_demo";
            String host="192.168.1.61";

            try {

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

                  String url = "jdbc:mysql://"+host+":"+  port + "/" + dbname;
                System.out.println("URL:" + url);
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection con = DriverManager.getConnection(url, user, pass);
                String qry2 = "select * from item_master";
                Statement st = con.createStatement();
                ResultSet rs = st.executeQuery(qry2);
                while (rs.next()) {

                    name = rs.getString(1);
                    System.out.println("Name:" + name);

                }


                rs.close();
                st.close();
                con.close();


            } catch (Exception e) {
                System.out.println("Exception:" + e);
            }
        }

Ответы [ 3 ]

0 голосов
/ 15 февраля 2012

Как я понимаю, вам просто нужно указать другую строку подключения, с другим хостом и другими учетными данными, например:

        ...
        String port = "3306";
        String user = "user_name";
        String pass = "password";
        String dbname = "db_name";
        String host="host_name";
        ...
0 голосов
/ 15 февраля 2012

Вы должны сделать 3 (с дополнительным 4-м шагом) простого подключения к удаленному серверу базы данных mysql.

  1. Откройте любой инструмент с графическим интерфейсом для управления базами данных mysql (ваш IDE, Mysql Workbench иличто-то еще), проверьте, можете ли вы подключиться к вашей базе данных, указав свои учетные данные, хост, порт и имя базы данных.Если вам это удастся, вы знаете, что в части БД нет ничего плохого (переходите к 3), если нет, и вы уверены, что до этого момента все делаете правильно, переходите к пункту 2.
  2. проверитьв этом посте как включить удаленный доступ к вашей базе данных и попробуйте снова (перейдите к pkt 1)

  3. Вы должны немного очистить свой код, иметьИзучите простой и конкретный учебник о том, как подключать и выполнять простые SQL-операторы с помощью Java на Vogella tutorial

  4. Когда все работает правильно, не забудьте дать +1 наУчебник Vogella, похвалите cybercity или любой другой веб-сайт за объяснение того, как включить удаленный доступ на вашей базе данных, и не забудьте вернуться к stackoverflow и вознаградить все хорошие ответы :)
0 голосов
/ 15 февраля 2012

Вы не создаете экземпляр класса драйвера:

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

[обновление: в конце концов, не нужно, игнорируйте это]

И вы также ссылаетесь на "sun".jdbc.odbc.JdbcOdbcDriver ", это необходимо?Если это так, разве вы не должны создавать его экземпляр?[обновление: вероятно, нет]

Если он работает с localhost, а не с указанным IP, вам нужно настроить mysql для прослушивания всех портов.

jcomeau@intrepid:/tmp$ cat dbconnection.java; javac dbconnection.java; sudo java -cp .:/usr/share/maven-repo/mysql/mysql-connector-java/5.1.16/mysql-connector-java-5.1.16.jar  dbconnection
import java.sql.*;
public class dbconnection {
 public static void main(String args[]) {
  String name = "";
  String port = "3306";
  String user = "root";
  String pass = "";
  String dbname = "imagetagging";
  String host="127.0.0.1";
  try {
   Class.forName("com.mysql.jdbc.Driver").newInstance();
   String url = "jdbc:mysql://"+host+":"+  port + "/" + dbname;
   System.out.println("URL:" + url);
   //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   Connection con = DriverManager.getConnection(url, user, pass);
   String qry2 = "select * from taggers";
   Statement st = con.createStatement();
   ResultSet rs = st.executeQuery(qry2);
   while (rs.next()) {
    name = rs.getString(1);
    System.out.println("Name:" + name);
   }
   rs.close();
   st.close();
   con.close();
  } catch (Exception e) {
   System.out.println("Exception:" + e);
  }
 }
}
URL:jdbc:mysql://127.0.0.1:3306/imagetagging
Name:1
Name:2
Name:3
Name:4
Name:5
Name:6
Name:7
Name:8
Name:9
Name:10
Name:11
Name:12
Name:13
Name:14
Name:15
Name:16
Name:17
Name:18
Name:19
Name:20
Name:21
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...