[英]mysql connection issue in first try
我已经学习了大约3周的java。 我想用mysql连接mysql,我现在正在尝试。 但有一个问题。 我已经为我的ubuntu安装了php,apache,mysql三个。 我可以从port 80
到达phpmyadmin。 我认为连接数据库时出现问题,这就是我说port的原因。
这是我的表:
+-------+-------------+------+-----+---------+----------------+
| 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)
您对此问题的看法是什么?
我假设问题是,端口80是为Web(HTTP)服务器保留的,而不是为MySQL保留的。 MySQL的默认端口是3306。
单引号将解决您的问题......
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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.