繁体   English   中英

如何使用JDBC从SQL数据库中检索特定数据?

[英]How to retrive specific data from a SQL database with JDBC?

我创建了一个包含三个表的SQL数据库:Student,Course,Studys。 我在向学生和课程中添加和检索信息没有问题,但是当我尝试对“研究”进行相同操作时,我会遇到一些问题。 我将其范围缩小到以下所示的部分。 问题是,我可以毫无问题地添加一个在学习表中不存在的学生(但在学生和课程表中确实存在)。 但是,如果我已经有一个学生在学习表中,并且我不想添加另一个条目(即,一个学习了多门课程的学生),我将一无所获。 我尝试使用代码段之外的许多循环和方法绕过它,但没有任何效果。 我很确定我已经接近答案了,但是我需要帮助才能结束。 任何帮助表示赞赏。

public void saveStudies() throws SQLException {

    String checkSql = "select count(*) as count from studies where spnr=?";
    PreparedStatement checkStmt = con.prepareStatement(checkSql);

    String insertSql = "insert into studies (spnr, cid) values (?, ?)";
    PreparedStatement insertStmt = con.prepareStatement(insertSql);

    for(Studies studies: studiess) {
        int spnr = studies.getSpnr();
        int cid = studies.getCid();

        checkStmt.setInt(1, spnr);

        ResultSet checkResult = checkStmt.executeQuery();
        checkResult.next();

        int count = checkResult.getInt(1);

        if(count == 0) {

            System.out.println("Inserting student with pnr: " + spnr + " into course with cid: " + cid);

            insertStmt.setInt(1, spnr);
            insertStmt.setInt(2, cid);

            insertStmt.executeUpdate();
        }
        else {
            System.out.println("A message containing information that says that the student and or course does not exist in the database");
        }

    }

    insertStmt.close();
    checkStmt.close();
}

如下所示,我正在检查错误的表。 解决的办法是检查其他两个表(学生和课程),以便了解天气情况。我可以在学习表中添加一些条目(这需要一名学生和一门课程)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM