首页 > 解决方案 > 从 Java 8 更新到 Java 11 时找不到 java.sql.Connection 的类文件错误

问题描述

我正在将基于 Java 8 Gradle 模块的项目升级到 Java 11。这是出现错误的类结构:

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLClientInfoException;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import org.apache.ibatis.jdbc.ScriptRunner;

public class someclass{
    public someclass(Connection conn) {
        setConnconnection(conn);
    }
    
    public Connection getConnection() {
        return m_conn;
    }

    public void setConnconnection(Connection conn) {
        m_conn = conn;
    }
    
    public void populateDefault() throws ConfigurationException {
        
        <... some lines ...>
    
        ScriptRunner sr = new ScriptRunner(m_conn);
        sr.setAutoCommit(true);
        sr.setStopOnError(true);
        sr.runScript(<script>);
    }
    
    private Connection m_conn;
}

gradle build,我得到错误:

error: cannot access Connection
               ScriptRunner sr = new ScriptRunner(m_conn);
                                 ^
 class file for java.sql.Connection not found

该模块的 module-info.java 是,

open module somemodule {
    requires java.sql;
    requires org.slf4j;
    requires org.apache.ibatis;
    requires org.xerial.sqlite;
    < other req>
}

我无法看到此错误背后的原因。任何见解都会非常有帮助。

标签: javasqlgradleclassnotfoundexceptionibatis

解决方案


推荐阅读