目前,我尝试在本地连接到我的mysql服务器。我的代码如下所示:
import java.sql.*;
public class JdbcSelectTest {
public static void main(String[] args) {
try (
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/ebookshop?useSSL=false", "...", "...");
Statement stmt = conn.createStatement();
) {
String strSelect = "select title, price, qty from books";
System.out.println("The SQL query is: " + strSelect);
System.out.println();
ResultSet rset = stmt.executeQuery(strSelect);
System.out.println("The records selected are:");
int rowCount = 0;
while(rset.next()) { // Move the cursor to the next row, return false if no more row
String title = rset.getString("title");
double price = rset.getDouble("price");
int qty = rset.getInt("qty");
System.out.println(title + ", " + price + ", " + qty);
++rowCount;
}
System.out.println("Total number of records = " + rowCount);
} catch(SQLException ex) {
ex.printStackTrace();
}
}
}
现在,当我使用以下代码进行编译时:
javac JdbcSelectTest.java
一切正常。但是现在当我尝试使用以下命令运行编译时:java -cp .;C:\Users\Marco\IdeaProjects\mysql-connector-java-8.0.13\mysql-connector-java-8.0.13.jar JdbcSelectTest
出现以下错误:错误:发生了JNI错误,请检查您的安装和
再试一次
线程“主”中的异常java.lang.UnsupportedClassVersionError:JdbcSelectTest已由Java的最新版本进行编译
运行时(类文件版本55.0),此
Java Runtime版本仅可识别52.0以下的类文件版本...
我的JAVA_HOME属性指向我本地安装的jdk版本11.0.1。
mysql-connector-java版本ist:8.0.13。
谁能帮帮我-顺便说一句。我在Java上相当新手-所以任何评论都可以帮助。
最佳答案
您的问题与mysql库无关。
错误消息的有意义的部分:
JdbcSelectTest has been **compiled by** [...] Java Runtime (class file version **55.0**)
与
this [...] Java Runtime only **recognizes** class file versions up to **52.0**
可以将其翻译为:
JdbcSelectTest
已由Java 11编译,但已尝试由Java 8运行。如果要验证这一点,只需在控制台中输入以下命令:
:~ > java -version
:~ > javac -version
而且您会发现它们与众不同。您已经检查了
JAVA_HOME
变量,但是还必须查看您的PATH
变量以解决此问题。 This link将帮助您。