首页 > 解决方案 > 即使该表实际存在于我的数据库中,字段中的未知表“课程”

问题描述

我有两个表,第一个是课程表,它保存了 course_id、course_name、course_time、学分……第二个是 selected_course_list 表,它保存了用户的课程。过程是用户在Textfield中输入一个course_id,程序会找出对应的课程信息(course_id, course_name, course_time...)然后保存到用户的selected_course_list表中。

但是我使用 sql 将课程插入 select_course_list

问题是:实际上我在我的数据库中创建了一个课程表,但编译器在字段中显示了未知表“课程”。为什么?顺便说一句,请帮我检查我的插入代码是否正确。

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_project", "root","");
String sql1 = "INSERT INTO select_course_list(id,course_id,course_class,course_name,course_type,credit,class_time,max,selected) "
                            + "SELECT courses.id, courses.course_id, courses.course_class, courses.course_name, courses.course_type, courses.credit, courses.class_time, courses.max, courses.selected"
                            + "FROM courses  "
                            + "WHERE courses.course_id = "+course_code.getText()+" ";
PreparedStatement ps = con.prepareStatement(sql1);
ps.executeUpdate(sql1);  

编译器显示:

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
java.sql.SQLSyntaxErrorException: Unknown table 'courses' in field listjava.sql.SQLSyntaxErrorException: Unknown table 'courses' in field list

标签: javamysqleclipseworkbench

解决方案


欣赏,但还有另一个问题。

代码:

Class.forName("com.mysql.jdbc.Driver");
                    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_project", "root","");

                      String sql1 = "INSERT INTO select_course_list(id,course_id,course_class,course_name,course_type,credit,class_time,max,selected) "
                              + "SELECT cs.id, cs.course_id, cs.course_class, cs.course_name, cs.course_type, cs.credit, cs.class_time, cs.max, cs.selected "
                              + "FROM courses cs "
                              + "WHERE cs.course_id  = "+course_code.getText()+"";  
                    PreparedStatement ps = con.prepareStatement(sql1);
                    ps.executeUpdate(sql1);

输出是

com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: ''

推荐阅读