0

私は約3週間Javaを学んでいます。私はmysqlをJavaに接続したかったので、今試しています。しかし問題がある。ubuntu用にphp、apache、mysqlの3つを既にインストールしています。から phpmyadmin にアクセスできますport 80。データベースに接続するときに問題があると思うので、ポートと言ったのです。

これが私のテーブルです:

+-------+-------------+------+-----+---------+----------------+
| 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)What is your idea about this problem?を返します。

4

2 に答える 2

1

一重引用符はあなたの問題を解決します...

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

PreparedStamentを使用すると、一重引用符と二重引用符の組み合わせをいじる必要がなくなります。

ステートメントが必要な理由tryは、例外を報告するためであることに注意してください。データベースにアクセスするときに多くの問題が発生する可能性があり、例外メッセージが報告され、問題を見つけるのに役立ちます。

また、接続を試行する前に、JDBC ドライバーが存在するかどうかを常に確認すると便利です。次のように、別の try ステートメントを挿入します。

    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);
    }
于 2013-07-31T23:45:52.900 に答える