即使该表实际上存在于我的数据库中,字段中的未知表“课程”
Posted
技术标签:
【中文标题】即使该表实际上存在于我的数据库中,字段中的未知表“课程”【英文标题】:Unknown table 'courses' in field even though the table actually exist in my database 【发布时间】:2021-07-22 11:41:28 【问题描述】:我有两个表,第一个是课程表,它保存了 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
【问题讨论】:
【参考方案1】:欣赏,但还有一个问题。
代码:
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: ''
【讨论】:
以上是关于即使该表实际上存在于我的数据库中,字段中的未知表“课程”的主要内容,如果未能解决你的问题,请参考以下文章