2013-07-31 2 views
0

Я изучаю java около 3 недель. Я хотел связать mysql с java, и теперь я пытаюсь это сделать. Но есть проблема. Я уже установил php, apache, mysql три для моего ubuntu. И я могу достичь phpmyadmin от port 80. Я думаю, что есть проблема при подключении базы данных, поэтому я сказал порт.mysql проблема подключения с первой попытки

Вот мой стол:

+-------+-------------+------+-----+---------+----------------+ 
| Field | Type  | Null | Key | Default | Extra   | 
+-------+-------------+------+-----+---------+----------------+ 
| id | int(2)  | NO | PRI | NULL | auto_increment | 
| name | varchar(32) | NO |  | NULL |    | 
+-------+-------------+------+-----+---------+----------------+ 

А вот код Java:

import java.sql.DriverManager; 
import java.sql.Statement; 

public class Main { 

    public static void main(String args[]) { 
     try { 

      java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:80/test", "root", "1"); 

      Statement state = (Statement) conn.createStatement(); 
      String name = "try"; 
      state.executeUpdate("INSERT INTO deneme (name) VALUES (" + name + ")"); 

     } catch (Exception e) { 
     } 
    } 
} 

Этот код работает около 20 секунд и возвращает BUILD SUCCESSFUL (total time: 21 seconds) Что ваша идея об этой проблеме?

+0

В чем проблема? – Alex

ответ

1

Одиночные кавычки исправить вашу проблему ...

state.executeUpdate("INSERT INTO deneme (name) VALUES ('" + name + "')"); 

С помощью PreparedStament вам не придется возиться с одинарных и двойных комбинаций кавычки.

Обратите внимание, что причина, по которой требуется инструкция try, предназначена для уведомления об исключении, поскольку при доступе к отчету о базе данных сообщение об исключении может пойти не так, и это поможет вам найти проблему.

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

try { 
     Class.forName("com.mysql.jdbc.Driver"); 
    } catch (ClassNotFoundException e) { 
     String msg = "The com.mysql.jdbc.Driver is missing\n" 
       + "install and rerun the application"; 
     JOptionPane.showMessageDialog(this, msg, this.getTitle(), JOptionPane.ERROR_MESSAGE); 
     System.exit(1); 
    } 
+0

Это было глупо :) – Yusuf

1

Я предполагаю, что проблема заключается в том, что порт 80 зарезервирован для веб-сервера (HTTP), а не для MySQL. порт по умолчанию для MySQL 3306.

+0

Я уже пробовал это, но до сих пор нет никакой вставки для mysql. – Yusuf

+0

Попробуйте добавить в блок catch «e.printStackTrace()», чтобы вы увидели, какое исключение вы получаете. – meilechh

+0

output: http://ideone.com/vkdCPp – Yusuf

Смежные вопросы