Java 第一次尝试时出现mysql连接问题

Java 第一次尝试时出现mysql连接问题,java,mysql,Java,Mysql,我已经学习java大约3周了。我想用java连接mysql,我现在正在尝试。但有一个问题。我已经为我的ubuntu安装了php、apache、mysql三个版本。我可以从端口80访问phpmyadmin。我认为连接数据库时有问题,这就是我说端口的原因 这是我的桌子: +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra

我已经学习java大约3周了。我想用java连接mysql,我现在正在尝试。但有一个问题。我已经为我的ubuntu安装了php、apache、mysql三个版本。我可以从
端口80
访问phpmyadmin。我认为连接数据库时有问题,这就是我说端口的原因

这是我的桌子:

+-------+-------------+------+-----+---------+----------------+
| 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秒,并返回
构建成功(总时间:21秒)
您对此问题的看法是什么?

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

单引号将解决您的问题

state.executeUpdate("INSERT INTO deneme (name) VALUES ('" + name + "')");
通过使用a,您将不需要处理单引号和双引号组合

请注意,之所以需要使用
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);
    }

尝试在catch块“e.printStackTrace()”中添加,这样您就可以看到所得到的异常。您忘记了用单引号将字符串“Try”括起来。如果要使用PreparedStatement而不是常规语句,则不需要这样做,setString()方法将为您完成这项工作。