1

DDL または DML コマンドを実行せずに JSP をデータベースに接続しようとしています。

これが私のJSPです:

 <%@ page import="java.sql.*" %> 
 <%@ page import="java.io.*" %> 
 <html> <head> <title>Connection with mysql database</title>
 </head> 
 <body>
 <h1>Connection status</h1>
 <% 
 try {
 String connectionURL = "jdbc:mysql://localhost:3306/bharath"; 
 Connection connection = null; 
 Class.forName("com.mysql.jdbc.Driver").newInstance(); 
 connection = DriverManager.getConnection(connectionURL, "root", "root");
 if(!connection.isClosed())
 %>
 <font size="+3" color="green"></b>
 <% 
 out.println("Successfully connected to " + "MySQL server using TCP/IP...");
 connection.close();
 }
 catch(Exception ex){
 %></font>
 <font size="+3" color="red"></b>
 <%
 out.println("Unable to connect to database.");
 } 
 %>
 </font></body> </html> 

catch ブロックの例外が実行されます。では、try ブロックで何が問題になったのでしょうか。MySql をデフォルト設定でユーザーを"root"、データベース名を としてインストールしまし"bharath"た。

 Exception - 
 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919) at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2412) at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2445) at 
4

3 に答える 3

1

それ以外の

out.println("Unable to connect to database.");

あなたは書くべきです

ex.printStackTrace(new java.io.PrintWriter(out));

主な問題点を指摘します。

于 2012-10-22T19:03:26.717 に答える
0

クラスパスに「com.mysql.jdbc.Driver」のjarが追加されていることを確認してください。

于 2012-10-22T19:24:16.837 に答える
0

newInstance()ドライバーは必要ありません。ロードするだけです。

を に入れmysql-connector-java-x.x.x-bin.jarますWEB-INF\lib。接続で指定した資格情報が機能している必要があります。機能しない、接続 URL のデータベース名が間違っている、ポートが間違っている、またはホストが間違っている場合。

プールから接続を取得するより良い機会もあります。接続プーリングを見てください。

于 2012-10-22T18:42:16.033 に答える