0

我已经学习 java 大约 3 周了。我想用java连接mysql,我现在正在尝试。但有一个问题。我已经为我的 ubuntu 安装了 php、apache、mysql 三个。我可以从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 question?

4

2 回答 2

1

我认为问题是,端口 80 是为 Web (HTTP) 服务器保留的,而不是为 MySQL 保留的。MySQL 的默认端口是 3306。

于 2013-07-31T23:37:54.243 回答
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 回答