将Java连接到MySQL数据库

将Java连接到MySQL数据库

你如何用Java连接到MySQL数据库?

当我尝试时,我明白了

java.sql.SQLException: No suitable driver found for jdbc:mysql://database/table
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)

要么

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

要么

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver


肥皂起泡泡
浏览 709回答 3
3回答

米琪卡哇伊

这是一步一步解释如何安装MySQL和JDBC以及如何使用它:下载并安装MySQL服务器。按照通常的方式做到这一点。无论何时更改端口号,请记住端口号。这是默认情况3306。下载 JDBC驱动程序并放入类路径,解压缩ZIP文件并将包含的JAR文件放在类路径中。特定于供应商的JDBC驱动程序是 JDBC API的具体实现(此处为教程)。如果您使用的是Eclipse或Netbeans之类的IDE,则可以通过将JAR文件作为库添加到项目属性中的构建路径来将其添加到类路径中。如果您在命令控制台中执行“普通的vanilla”,则需要在执行Java应用程序时在-cp或-classpath参数中指定JAR文件的路径。java -cp .; / path / to / mysql-connector.jar com.example.YourClass的.是就在那里给添加当前目录到类路径中,以便它可以找到com.example.YourClass和;是类路径分隔符,因为它是在Windows中。在Unix中,:应该使用克隆。在MySQL中创建一个数据库。我们来创建一个数据库javabase。你当然想要世界统治,所以让我们也使用UTF-8。CREATE DATABASE javabase DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;为Java 创建用户并授予其访问权限。仅仅因为使用root是一种不好的做法。CREATE USER 'java'@'localhost' IDENTIFIED BY 'password';GRANT ALL ON javabase.* TO 'java'@'localhost' IDENTIFIED BY 'password';是的,java是用户名,password是这里的密码。确定 JDBC URL。要使用Java连接MySQL数据库,您需要使用以下语法的JDBC URL:JDBC:MySQL的://主机名:端口/数据库名称所以最终的URL应如下所示:JDBC:MySQL的://本地主机:3306 / javabasehostname:安装MySQL服务器的主机名。如果它安装在您运行Java代码的同一台机器上,那么您可以使用它localhost。它也可以是一个IP地址127.0.0.1。如果您遇到连接问题并使用127.0.0.1而不是localhost解决它,那么您的网络/ DNS /主机配置中存在问题。port:MySQL服务器侦听的TCP / IP端口。这是默认情况3306。databasename:您要连接的数据库的名称。那是javabase。使用Java 测试与 MySQL 的连接。使用main()测试连接的方法创建一个简单的Java类。String url = "jdbc:mysql://localhost:3306/javabase";String username = "java";String password = "password";System.out.println ("Connecting database...");try (Connection connection = DriverManager.getConnection(url, username, password)) {     System.out.println("Database connected!");} catch (SQLException e) {     throw new IllegalStateException("Cannot connect the database!", e);}如果你得到了SQLException: No suitable driver,那么这意味着JDBC驱动程序根本没有自动加载,或者JDBC URL错误(即任何加载的驱动程序都无法识别它)。通常,当您将JDBC 4.0驱动程序放在运行时类路径中时,应该自动加载它。要排除其中一个,您可以随时手动加载它,如下所示:System.out.println("Loading driver...");try {     Class.forName("com.mysql.jdbc.Driver");     System.out.println("Driver loaded!");} catch (ClassNotFoundException e) {     throw new IllegalStateException("Cannot find the driver in the classpath!", e);}需要注意的是,newInstance()在呼叫未在这里需要。它只是修复旧的和马车org.gjt.mm.mysql.Driver。这里解释。如果此行抛出ClassNotFoundException,则包含JDBC驱动程序类的JAR文件根本没有放在类路径中。请注意,您不需要在连接之前每次都 加载驱动程序。在应用程序启动期间只需一次即可。如果您获得SQLException: Connection refused或Connection timed out特定于MySQL CommunicationsException: Communications link failure,则意味着DB根本无法访问。这可能有以下一个或多个原因:要解决这个问题,请遵循以下建议:请注意,关闭Connection它非常重要。如果您没有关闭连接并在短时间内继续获取大量连接,那么数据库可能会用完连接而您的应用程序可能会中断。始终Connection在try-with-resources声明中获得。或者,如果你对Java 7的是没有,明确地关闭它在finally一个的try-finally块。关闭finally只是为了确保它在异常情况下也会关闭。这也适用于Statement,PreparedStatement和ResultSet。验证并测试它们ping。刷新DNS或使用JDBC URL中的IP地址。根据my.cnfMySQL DB 验证它。启动数据库。验证mysqld是否在没有启动的情况下启动--skip-networking option。重新启动数据库并相应地修改代码以关闭连接finally。禁用防火墙和/或配置防火墙/代理以允许/转发端口。 JDBC URL中的IP地址或主机名是错误的。本地DNS服务器无法识别JDBC URL中的主机名。JDBC URL中的端口号丢失或错误。数据库服务器已关闭。数据库服务器不接受TCP / IP连接。数据库服务器已用完连接。Java和DB之间的某些东西阻止了连接,例如防火墙或代理。 就连接问题而言,这就是它。您可以在这里找到一个更高级的教程,如何借助基本的DAO类在数据库中加载和存储完整的Java模型对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
MySQL