没有配置数据源来运行此SQL

时间:2017-03-21 16:55:56

标签: java sqlite intellij-idea

我在使用Java创建表(对于数据库)时遇到了一些问题。

目前,我正在使用IntelliJ IDEA,当我编写用于创建表格的代码时,文本以黄色突出显示,当我查看问题时,我看到以下消息:

"没有配置数据源来运行此SQL并提供高级代码帮助。通过问题菜单(⌥⏎)禁用此检查。"

我尝试更改SQL方言(因为之前还有出现的消息)没有结果。

我该怎么办?我在代码中写了一些错误但我不知道为什么其他示例可以完美地工作。

以下是代码:

public static void createTable(){

    //connect to database
    String url = percorsoDatabase;

    //Statement create new table
    String sql = "CREATE TABLE IF NOT EXISTS Tabella (id PRIMARY KEY," +
            "video TEXT," +
            "game TEXT," +
            "firstAction TEXT," +
            "secondAction TEXT," +
            "thirdAction TEXT);";

    try {
        Connection conn = DriverManager.getConnection(url);
        Statement stmt = conn.createStatement();
        stmt.execute(sql);
    } catch (SQLException e ){
            System.out.println(e.getMessage());
    }

}

我已经创建了一个SQLite数据库,并建立了一个有效的连接(在此之前),如果有用的话,这里是代码。

public static void main(String[] args) {

    createNewDatabase();
    connection();
    createTable();
}

public static void createNewDatabase(){

    String url = percorsoDatabase;

    Connection conn;
    try {

     conn = DriverManager.getConnection(url);
        if (conn != null){
            DatabaseMetaData meta = conn.getMetaData();
            System.out.println("The driver name is" + meta.getDriverName());
            System.out.println("A new database has been created.");
        }
    } catch (SQLException e){
        System.out.println(e.getMessage());
    }

}

public static void connection(){

    Connection conn = null;
    try {
        //String url = "jdbc:sqlite://Volumes/Isma/Documenti/SUPSI/APA/Stage/"
        //        + "Beans/esperimento/dati.db";
        conn = DriverManager.getConnection(percorsoDatabase);
        System.out.println("Connection to SQLite established.");
    } catch (SQLException e){
        System.out.println(e.getMessage());
    } finally {
        try {
            if (conn != null){
                conn.close();
            }
        } catch (SQLException e){
            System.out.println(e.getMessage());
        }
    }

}

所以...如果你能帮助我,我将不胜感激。

提前感谢您的回答并度过愉快的一天!

4 个答案:

答案 0 :(得分:7)

消息:

  

没有配置数据源来运行此SQL并提供高级代码帮助。

有点明确,恕我直言有点不必要,因为我真的认为我不需要为每个我们有一些SQL查询的项目配置数据库。

要处理此消息,您有两个选择:

  1. 使用信息上方的 ALT + ENTER 并使用选项配置数据,为项目配置数据源Add a data source
    1. 在IDE设置的检查选项上禁用此 SQL方言检测检查:

      Disable the SQL dialect detection

    2. 第二个选项对我来说是最好的方法,除非你真的想要或需要项目中的数据源。

答案 1 :(得分:4)

此警告表示您尚未在Intellij Idea的数据库工具窗口中配置数据源。这并不意味着您的代码是错误的,它只是表明您没有基于数据库架构完成代码。

此处描述了Intellij中数据源的配置https://www.jetbrains.com/help/idea/2016.3/database-tool-window.html

答案 2 :(得分:2)

IntelliJ Idea 是一个智能的 IDE,有时需要一些配置来帮助您。

<块引用>

没有配置数据源来运行此 SQL 并提供高级 代码帮助

上述警告永远不会影响您的应用程序,您可以轻松跳过它,但通过设置数据源,您可以利用 IntelliJ 的 Database tools and SQL 杰出功能。

要设置数据源,请遵循查看工具窗口数据库,然后单击数据源属性按钮。在显示的窗口中选择您的数据库并填写所需的文本字段。

步骤演示如下图:

enter image description here

答案 3 :(得分:0)

我认为您应该检查与数据库的连接。

url - a database url of the form jdbc:subprotocol:subname

检查Api https://docs.oracle.com/javase/7/docs/api/java/sql/DriverManager.html#getConnection(java.lang.String)

您是否正确添加了ODBC?