0

これは私のコードです..mySQLから始めてください。IDE は netbeans 7.2.1 です

    package monitordata;

    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import javax.xml.ws.Endpoint;


    public class monitorDataMF {

    public static void main(String[] args){
        Statement stmt = null;
        String dbname = null;
        String dbuser = null;
        String dbpass = null;
        String dbport = null;
        String dbIP = null;

        //pairnoume tis parametrous gia ti sindesi me ti vasi apo to properties file
        try{                
            Properties prop = new Properties();
            prop.load(new FileInputStream("mySQL.properties"));
            dbname = prop.getProperty("dbname");
            dbuser = prop.getProperty("dbuser");
            dbpass = prop.getProperty("dbpass");
            dbport = prop.getProperty("dbport");
            dbIP = prop.getProperty("dbIP");
        }catch(IOException e){e.printStackTrace();}

        //connecting with database
        try{
            Connection conn = null;
            Class.forName("com.mysql.jdbc.Driver");
            String dbUrl = "jdbc:mysql://" + dbIP + ":" + dbport + "/" + dbname;
            conn = DriverManager.getConnection(dbUrl, dbuser, dbpass);
            String createTable = "CREATE TABLE IF NOT EXISTS test"
                    + "(NAME VARCHAR(40) NOT NULL)";
            //String insertData = "INSERT INTO test "
            //        + "VALUES ('Stelios','Thwmas')";
            stmt = conn.createStatement();
            stmt.executeUpdate(createTable);
            //stmt.executeUpdate(insertData);
        }catch(ClassNotFoundException | SQLException e){}
    }
}

更新を実行し、[サービス] > [WebInterfaces] に移動して更新を押しましたが、テーブルがありません。executeUpdate と executeQuery のどちらを実行すべきかわかりません

更新: これは実際のエラー Caught exception: Access denied for user 'root '@'localhost' (using password: YES) ですが、接続ステートメントに送信したパスを印刷しました。これは、データベースに必要なパスに対応しています始める。何が間違っているのかわかりません

4

1 に答える 1

1

おそらく実行中にエラーが発生するでしょう。catch ステートメントで例外をログに記録していません。コードを変更してエラーを表示します。また、接続を適切に閉じる必要があります。

   Connection conn = null;
 try{
        Class.forName("com.mysql.jdbc.Driver");
        String dbUrl = "jdbc:mysql://" + dbIP + ":" + dbport + "/" + dbname;
        conn = DriverManager.getConnection(dbUrl, dbuser, dbpass);
        String createTable = "CREATE TABLE IF NOT EXISTS test"
                + "(NAME VARCHAR(40) NOT NULL)";
        //String insertData = "INSERT INTO test "
        //        + "VALUES ('Stelios','Thwmas')";
        stmt = conn.createStatement();
        stmt.executeUpdate(createTable);
        //stmt.executeUpdate(insertData);
    }catch(ClassNotFoundException exp){
       System.err.println("Caught IOException: " + exp.getMessage()); 
    }catch( SQLException e) {
      System.err.println("Caught IOException: " + e.getMessage());
    } finally {
       if(conn != null) {
         conn.close();
       }
    }
于 2012-12-13T18:43:03.320 に答える