今天自学数据库时,先是在MySQL中无法输入中文,百度查资料弄了很久,各种办法都试了一遍了还是不能解决
不过庆幸的是,在我重装十几遍之后奇迹般地成功了……
但是,还没高兴多久,问题就又来了……
“com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE dept='计算机'' at line 1”
代码如下:
package ch17; import java.sql.*; public class App17_15 { private static String driver="com.mysql.jdbc.Driver"; private static String url="jdbc:mysql://localhost/StudentScore"; private static String user="root"; private static String password="3624"; public static void main(String[] args) { Connection conn=null; Statement stmt=null; ResultSet rs=null; try { Class.forName(driver); conn=DriverManager.getConnection(url,user,password); String sql="SELECT sNo,sName,sex,age FROM"+ "Student WHERE dept='计算机'"; stmt=conn.createStatement(); rs=stmt.executeQuery(sql); while(rs.next()) { String no=rs.getString("sNo"); String name=rs.getString("sName"); String sex=rs.getString("sex"); int age=rs.getInt("age"); System.out.println(no+" "+name+" "+sex+" "+age); } } catch(Exception e) { e.printStackTrace(); } finally { try { if(rs!=null)rs.close(); if(stmt!=null)stmt.close(); if(conn!=null)conn.close(); } catch(Exception e) { e.printStackTrace(); } } } }
我反反复复地检查了十几遍,完全和书上是一毛一样的啊,为什么会报错?为什么?
然后无奈之下我又去问了度娘,无疑,几个小时过去了,问题还是问题……
直到发这篇文章的前一刻!我才找到了问题所在!!
直接把“String sql="SELECT sNo,sName,sex,age FROM"+
"Student WHERE dept='计算机'";”
修改成“String sql="SELECT sNo,sName,sex,age FROM Student WHERE dept='计算机'";”就好了。
(ps:书本告诉我:构造sql参数时,需要将表达式多行的字符串加上双引号并将各行用加号“+”链接起来,那究竟是为什么会出现编译错误?)