SQLite JOIN表与关系

时间:2018-10-17 13:35:10

标签: java database sqlite intellij-idea relational-database

我试图找出这段代码在哪里有问题。

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

    Class.forName("org.sqlite.JDBC");
    Connection conn = DriverManager.getConnection("jdbc:sqlite:STUDENTS.db");
    Statement stat = conn.createStatement();
    //ResultSet rs = stat.executeQuery("select * from tabulka_faktov");
    ResultSet rs = stat.executeQuery("SELECT tabulka_faktov.MENO, tabulka_faktov.PREDMET1, tabulka_faktov.PREDMET2 FROM tabulka_faktov " +
            "INNER JOIN meno_ID ON tabulka_faktov.MENO = meno_ID.MENO");
    while (rs.next()) {
        System.out.println(rs.getString("MENO"));
        System.out.println("predmet 1 = " + rs.getString("PREDMET1"));
        System.out.println("predmet 2 = " + rs.getString("PREDMET2"));
        //System.out.println("volitelny = " + rs.getString("VOLITELNY_PREDMET"));
    }
    rs.close();
    conn.close();
}

它没有返回错误,但是从此代码中我什么也没得到,只是进程以退出代码0结束。

我的数据库看起来像这样  DB Design

我正在使用SQLite数据库

你们能告诉我哪里有错误吗?

谢谢

3 个答案:

答案 0 :(得分:1)

没有错误的事实意味着代码成功运行。 因此,可能没有符合您查询条件的结果。

尝试在数据库管理系统中执行查询。

答案 1 :(得分:0)

规则是:

  

INNER JOIN关键字选择在其中具有匹配值的记录   两个表。

您的tabulka_faktov表具有类型MENO
的列integer meno_id表具有类型MENO的列text
它们的值如何匹配?
如果这不会破坏数据库中的任何规则,请将MENOtabulka_faktov的数据类型更改为text,然后重试。

答案 2 :(得分:0)

“ rs.getString()”和“ luts”“ rs.getNString()”