eclipse写SQL语言的常见的错误之一

java eclipse 写的SQL语言 常见的错误之一

有我们会遇到一种情况,在cmd中Mysql的一些语句可以正常运行,但是在eclipse中却不能成功运行
像这种情况:

public void updateStudent(int id,int score) throws SQLException{
		Connection conn=JDBC.getConnection();
		String sql="update Student set score="+score+"where id="+id;
		Statement stat=conn.createStatement();
		stat.executeUpdate(sql);
		stat.close();
		JDBC.close(conn, stat, null);

我们在mysql中运行的会给score和id给与准确的数字,语句能够正确的运行,但是在eclipse中会发生运行报错的情况
我们创建对象运行这段代码。

public static void main(String[] args) {
		StudentDao studentDao = new StudentDao();
		try {
			studentDao.updateStudent(2, 59);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

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 ‘id=2’ at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

只要将上面那段代码改成这样:

public void updateStudent(int id,int score) throws SQLException{
		Connection conn=JDBC.getConnection();
		String sql="update Student set score="+"'"+score+"'"+"where id="+"'"+id+"'";
		Statement stat=conn.createStatement();
		stat.executeUpdate(sql);
		stat.close();
		JDBC.close(conn, stat, null);

就是给输入的int值加上引号就不会报错了,虽然大多数情况下int值并不需要加引号,但是在特殊情况下还是会报错。

你可能感兴趣的:(eclipse写SQL语言的常见的错误之一)