php エディター Banana は、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)ソリューションデータ ソース
drivermanager
はかなり古いやり方です。より良いアプローチは、
DataSource オブジェクトを取得することです。 JNDI
を使用して、構成されているアプリケーション サーバー コンテナを見つけることができます:
リーリー
...または、データベース ドライバーから直接インスタンスを作成して構成します (com.mysql.cj.jdbc.mysqldatasource など) (
):
リーリー
...そして、上記と同じようにそこから接続を取得します:
リーリー
最新の Java では、
構文を使用して、jdbc リソースを自動的に閉じます (現在は
AutoCloseable)。
java.lang.classnotfoundexception: com.mysql.jdbc.driver
ここでは、mysql と jdbc のインストール方法とその使用方法について段階的に説明します:
- をダウンロードして、mysql サーバー
をインストールします。いつも通りにやってください。ポート番号を変更するときは必ずこの番号を覚えておいてください。デフォルトは 3306 です。
- jdbc ドライバーをダウンロードしてクラスパス
に配置し、zip ファイルを解凍して、含まれている jar ファイルをクラスパスに配置します。ベンダー固有の jdbc ドライバーは、JDBC API (チュートリアルはこちら) の具体的な実装です。 Eclipse や Netbeans などの IDE を使用している場合は、jar ファイルを library として
Build Pathプロパティに追加することで、クラスパスに追加できます。 コマンド コンソールでこれを「通常の」方法で行う場合は、Java アプリケーションの実行時に -cp または
-classpathパラメータで jar ファイルを指定する必要があります。パス。
com.example.yourclassリーリー
.
は、と
java.lang.ClassNotFoundException に直面せずに JAR ライブラリを WAR プロジェクトに追加する方法?クラスパス、ビルド パス、/WEB-INF/libを見つけられるように、現在のディレクトリをクラスパスに追加するだけです。
はウィンドウ内にあるため、クラスパスの区切り文字です。 。 UNIX およびクローンでは、:
を使用する必要があります。/web-inf に配置されるようにする必要があります。 /lib
中間。も参照してください。より良い方法は、物理 JDBC ドライバーの JAR ファイルをサーバー自体にインストールし、JDBC 接続プールを作成するようにサーバーを構成することです。 Tomcat の例を次に示します。
mysql でサーブレット ベースのアプリケーションで JDBC データベース/データソースに接続するにはどうすればよいですか?
database -
を作成します。データベース javabase を作成しましょう。もちろん世界を支配したいので、utf-8 も使用します。 リーリー
java は Create a user - にアクセスし、
grant にアクセスします。単純に、root の使用は悪い習慣だからです。 リーリー はい、ここで
passwordjava
はユーザー名、はパスワードです。
- jdbc URL
を決定します。 Java を使用して mysql データベースに接続するには、次の構文を持つ jdbc URL が必要です:
jdbc:mysql://hostname:port/databasename
-
hostname
:安装 mysql 服务器的主机名。如果它安装在运行 java 代码的同一台机器上,那么您可以只使用localhost
。它也可以是 ip 地址,例如127.0.0.1
。如果您遇到连接问题,并且使用127.0.0.1
而不是localhost
解决了该问题,那么您的网络/dns/主机配置有问题。 -
port
:mysql 服务器监听的 tcp/ip 端口。默认情况下为3306
。 -
databasename
:您要连接的数据库的名称。那是javabase
。
所以最终的 url 应如下所示:
jdbc:mysql://localhost:3306/javabase
-
-
Test the connection 使用 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合适的驱动程序
,则意味着 jdbc 驱动程序根本没有自动加载,或者 jdbc url 错误(即,任何加载的驱动程序都无法识别它)。另请参见 The infamous java.sql.SQLException: No suitable driver found。通常,当您将 jdbc 4.0 驱动程序放入运行时类路径中时,应该会自动加载它。要排除其中一个或另一个,您可以随时手动加载它,如下所示:System.out.println("Loading driver ..."); try { Class.forName("com.mysql.cj.jdbc.Driver"); // Use com.mysql.jdbc.Driver if you're not on MySQL 8+ yet. System.out.println("Driver loaded!"); } catch (ClassNotFoundException e) { throw new IllegalStateException("Cannot find the driver in the classpath!", e); }
请注意,此处不需要调用
newinstance()
。对于mysql,只是为了修复旧的且有缺陷的org.gjt.mm.mysql.driver
。 Explanation here。如果此行抛出classnotfoundexception
,则说明包含 jdbc 驱动程序类的 jar 文件根本没有放置在类路径中。另请注意,抛出异常非常重要,以便立即阻止代码执行,而不是仅仅打印堆栈跟踪然后继续执行其余代码来抑制它。另请注意,您不需要每次在连接之前加载驱动程序。只需在应用程序启动期间一次就足够了。
如果您收到
sqlexception: 连接被拒绝
或connection timed out
或 mysql 特定的communicationsexception: 通信链路故障
,则意味着数据库根本无法访问。这可能由以下一个或多个原因造成:- jdbc url 中的 ip 地址或主机名错误。
- 本地 dns 服务器无法识别 jdbc url 中的主机名。
- jdbc url 中的端口号缺失或错误。
- 数据库服务器已关闭。
- 数据库服务器不接受 tcp/ip 连接。
- 数据库服务器已耗尽连接。
- java 和 db 之间的某些东西正在阻塞连接,例如防火墙或代理。
要解决其中一个问题,请遵循以下建议:
- 使用
ping
验证并测试它们。 - 刷新 dns 或在 jdbc url 中使用 ip 地址。
- 根据mysql db的
my.cnf
进行验证。 - 启动数据库。
- 验证 mysqld 是否在没有
--skip-networking 选项
的情况下启动。 - 重新启动数据库并相应地修复代码,使其关闭
finally
中的连接。 - 禁用防火墙和/或配置防火墙/代理以允许/转发端口。
请注意,关闭
connection
极其非常重要。如果您不关闭连接并在短时间内不断获取大量连接,那么数据库可能会耗尽连接,并且您的应用程序可能会崩溃。始终获取try-with-resources
statement 中的connection
。这也适用于statement
、preparedstatement
和resultset
。另见How often should Connection, Statement and ResultSet be closed in JDBC?
这就是连接问题。您可以在 here 找到更高级的教程,了解如何借助基本 dao 类在数据库中加载和存储完整的 java 模型对象。
对数据库 connection
使用单例模式和/或 static
变量是一种不好的做法。参见其他 Is it safe to use a static java.sql.Connection instance in a multithreaded system? 这是第一个初学者错误。确保您不会落入这个陷阱。
以上がJava を MySQL データベースに接続するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ホットトピック









