2017-06-07 8 views
-1

私はmysql接続で小さなプログラムを書いています。私はデータベースにデータを挿入する必要があります。接続は正常ですが、クエリを実行しようとすると機能しません。 executeQuery()ステートメントの後のすべてのステートメントは機能しません。JDBCは接続はOKですがクエリは実行しません

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException, SQLException { 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 
    Connection connect=null; 
    PreparedStatement preparedStatement; 
    String JDBC_DRIVER="com.mysql.jdbc.Driver"; 
    String DB_URL="jdbc:mysql//localhost/jarvis"; 
    String USER = "test"; 
    String PASS = "test"; 
    try{ 
     Class.forName(JDBC_DRIVER); 
     connect = DriverManager.getConnection(DB_URL, USER, PASS); 
    } 
    catch(ClassNotFoundException e){ 
     out.println("Errore: "+e); 
    } catch (SQLException ex) { 
     Logger.getLogger(Prova.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    out.println(); 
    out.println("qui"); 
    String query = "INSERT INTO users(Nome, Cognome, Username, Password) values(?, ?, ?, ?)"; 
    try (PreparedStatement insert = connect.prepareStatement(query)) { 

     insert.setString(1, "name"); 
     insert.setString(2, "sur"); 
     insert.setString(3, "gvhgv"); 
     insert.setString(4, "qfwe"); 

     insert.executeUpdate(); 
    } 
    catch(Exception e){ 
     out.println("Errore "+e); 
    } 
    out.println("Fine"); 


} 

on executeQuery実行を停止し、値をデータベースに挿入しません。

PS:まず、あなたのJDBC接続のURLが間違っている私の英語 foto

+0

エラーメッセージを確認して、指定したターゲットに挿入する権限があることを確認します。 – Juvanis

+0

これを手動で実行できますか? –

+0

@ stmt.executeQueryがスローされなければなりません。 –

答えて

1

のため申し訳ありませんが、それはこれに代えて、この

String DB_URL = jdbc:mysql://localhost/jarvis 

次のようになります。

String DB_URL = jdbc:mysql//localhost/jarvis 

あなたが従うことができますMySQL documentationあなたは何かについて疑問があるときはいつでも。

それはexecuteUpdate()方法の代わりに、executeQuery方法を使用し、第二に、MySQLのデフォルトのポートに3306

デフォルトしまうスキップされた場合は、ポートを言及する必要はないことに注意してください。 DB接続が成功したような、チャンク内のコードをテストすることをお勧めします。基礎となるDBからデータを取得してDBに挿入できます。

さらに良い方法は、コードをデバッグすることです。少なくとも、あなたが今得意としている通りにNullPointerExceptionが見つかる場所を提供することです!

編集:

あなたは(そのビルド・パスに)IDEを使用している場合、あなたのコードがそれにアクセスするためとCLASSPATHグローバル変数に利用できるあなたのJDBC Connector/Jのjarを持っている必要があります(用IDEを使用しない場合の参照)。これらの依存関係を頻繁に変更しない場合は、CLASSPATHに追加することをお勧めします。

希望すると便利です。

+0

このポートはURLでオプションなので、 'jdbc:mysql:// localhost/jarvis'( 'mysql'の後にコロンをつけ、ポートなし)も有効です。 –

+0

はい@MarkRotteveel、私は私の答えで言及した! –

+0

私が見ている問題は、それが実際の問題を悪化させるということです。別の5文字の違いがあれば、その単一のコロンを見落とすのは簡単です。 –

関連する問題