0

私は正常に動作するJavaクラスを持っています(つまり、SQLへのmysql接続は成功しています)が、同じパッケージに別のクラスがあります。接続のオブジェクトを作成しようとしているところから、さまざまな目的で接続を使用するつもりです。これが正常に動作するクラスです (関数名を public static void main(String[] args) から connect() に変更しました。接続が他のファイルから呼び出せない理由が本当にわかりません。

db.java

import java.sql.*;
import java.util.Properties;

public class db
{
  // The JDBC Connector Class.
  String dbClassName = "com.mysql.jdbc.Driver";

  // Connection string. emotherearth is the database the program
  // is connecting to. You can include user and password after this
  // by adding (say) ?user=paulr&password=paulr. Not recommended!

   String CONNECTION =
                          "jdbc:mysql://127.0.0.1/news";

  public Connection Connect() throws
                             ClassNotFoundException,SQLException
  {
    System.out.println(dbClassName);
    // Class.forName(xxx) loads the jdbc classes and
    // creates a drivermanager class factory
    Class.forName(dbClassName);

    // Properties for user and password. Here the user and password are both 'paulr'
    Properties p = new Properties();
    p.put("user","root");
    p.put("password","akshay");

    // Now try to connect
    Connection c = DriverManager.getConnection(CONNECTION,p);

    System.out.println("It works !");
    return c;
    }


}

そして、このクラスから関数を呼び出そうとしています:

import java.sql.*;

public class findl {

    public static void main(String[] args)
    {
        System.out.println("hi");
    }   
    public Connection conn(){
        db dbs = new db();
        Connection clr = dbs.Connect();
        return clr;
            }

}

脚注 : エラーは行 Connections clr = dbs.connect()にあり、日食は言う

 1)unhandled exception type sqlexception

 2)unhandled classnotfoundexception.

mysql.jar のロードに問題があった場合、そもそも (元のクラスでは) 機能しないはずです。私が欠けているものを教えてください。ありがとう。

4

2 に答える 2

1

2 番目のファイルの代わりにこれを使用

 import java.sql.*;

 public class findl {

  public static void main(String[] args)
        {
            System.out.println("hi");
        }   
try{
    public Connection conn(){
        db dbs = new db();
        Connection clr = dbs.Connect();
        return clr;
            }
}


 catch(SQLException s){}

catch(ClassNotFoundException e) {

}

    }

try-catch をマークする

このコードを try-catch 内に配置し、catch ブロックで sqlException を処理します

于 2013-04-24T17:27:45.963 に答える
1

conn2 番目の例のメソッドは、最初のクラスと同様にそれthrows SQLExceptionを示す必要があります。ClassNotFoundExceptionpublic Connection Connect() throws ClassNotFoundException,SQLException

それがあなたの問題です: チェックされた例外。

于 2013-04-24T17:22:41.613 に答える