2014-01-21 5 views
0

Я хочу вставить строку в базу данных MySql с нормальной программой для подключения Mysql в Java Netbeans, но когда я запускаю этот код, моя база данных остается без изменений. У меня было установление соединения с Netbeans и Mysql, и оно работает хорошо.Java Netbeans База данных MySql Connection

Код:

import java.sql.*; 

    public class MySqlConnection { 


     static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
     static final String DB_URL = "jdbc:mysql://localhost:3306/migration"; 
     static final String USER = "root"; 
     static final String PASS = "ngts12345"; 

     public static void main(String[] args) { 

      Connection conn = null; 

      try{ 
      Class.forName("com.mysql.jdbc.Driver"); 
      System.out.println("Connecting to a selected database..."); 
      conn = DriverManager.getConnection(DB_URL, USER, PASS); 
      System.out.println("Connected database successfully..."); 
      System.out.println("Inserting records into the table..."); 

      String sql = "INSERT INTO document (document_id, document_name, format)" + 
      "VALUES (?, ?, ?)"; 
      PreparedStatement preparedStatement = conn.prepareStatement(sql); 
      preparedStatement.setInt(1, 1); 
      preparedStatement.setString(2, "Test2"); 
      preparedStatement.setString(3, "Test3"); 
      preparedStatement.executeUpdate(); 
      preparedStatement.close(); 
      conn.close(); 
     }catch(SQLException se){ 
      //Handle errors for JDBC 

     }catch(Exception e){ 
      //Handle errors for Class.forName 

     } 
    } 
    } 
+0

есть у проверил журнал? –

ответ

0

там нет места после format) и values

Изменить эту строку

String sql = "INSERT INTO document (document_id, document_name, format)" + 
     "VALUES (?, ?, ?)"; 

в

String sql = "INSERT INTO document(document_id, document_name, format) " + 
     "VALUES (?, ?, ?)"; 
0

Примечание предварительно paredStatement.executeUpdate() возвращает true (запись была успешной при вставке, обновлении или удалении) или false (не удалось). Поэтому я предлагаю распечатать результат, чтобы увидеть, работает ли он.

Что касается сообщения об ошибке, вы используете исключения и не распечатываете ошибку? В блоке catch поставьте e.printStackTrace(), чтобы узнать, что такое ошибка.

+0

[executeUpdate()] (http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html#executeUpdate()) возвращает int not boolean (true или false) – SpringLearner

0

Попробуйте сделать это:

preparedStatement.executeUpdate(sql); 

и вы должны также указать базу данных

String sql = "INSERT INTO database_name.document (document_id, document_name, format)" +"VALUES (?, ?, ?)"; 
0
enter code here 
try{  
Class.forName("com.mysql.jdbc.Driver"); // MySQL database connection 
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306","root",""); 
String sql = "select * from 'table_name'.database_name where user=? and pass=?"; 
    pst = conn.prepareStatement(sql); 
    rs= pst.executeQuery();} 
Смежные вопросы