1

スレッド「main」の例外java.lang.Error:未解決のコンパイルの問題:タイプの不一致:java.sql.Statementからcom.mysql.jdbc.Statementに変換できません

私はJavaの初心者です。mysqlデータベースを使用しようとしています。mysql.comからmysql-connector-java-5.1.23-bin.jarファイルをダウンロードし、このjarファイルをプロジェクトのビルドパスに追加しましたが、次のコードにエラーがあります スレッド「main」の例外java.lang.Error:未解決のコンパイルの問題:タイプの不一致:java.sql.Statementからcom.mysql.jdbc.Statementに変換できません


package com.example.demo;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class DBConnect
{
private static final String userName = "root";
private static final String userpwd = "sverma";
private static final String CONN_STR = "jdbc:mysql://localhost:3306/phpweb_db";

public static void main(String[] args) throws SQLException
{

    Connection conn = null;
    Statement st = null;
    ResultSet rs = null;

    try
    {
        DriverManager.getConnection(CONN_STR, userName, userpwd);
        st=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
        rs = st.executeQuery("select * from user");
        rs.last();
        System.out.println("No of rows: " + rs.getRow());

        // System.out.println("Connected Successfully...");
    }
    catch (SQLException e)
    {
        System.err.println(e);

    }
    finally
    {
        if (rs != null)
        {
            rs.close();
        }
        if (st != null)
        {
            st.close();
        }
        if (conn != null)
        {
            conn.close();
        }
    }
}

}


4

2 に答える 2

4

間違ったクラス

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

する必要があります

import java.sql.Connection;
import java.sql.Statement;

実際、Java は特定のデータベース エンジンからすべてを分離します。MySQL (または ProgressSQL など) クラスのインポートは必要ありません。

これらのクラスを実行時に使用できるようにするにtryは、接続を取得する前に、 の後に次のようにします。

Class.forName("com.mysql.jdbc.Driver");

この手法により、構成ファイルからすべての文字列を読み取ったり、データベースに依存しないコードを記述したりできます。


欠落: conn = ...

conn = DriverManager.getConnection(CONN_STR, userName, userpwd);
于 2013-02-20T19:46:16.743 に答える