使用Java代码操作数据库的注意事项

在Java中使用PreparedStatement操作数据库时产生了一个小问题,想当然的把数据库的列放入了占位符里:

public void updateUser(User user, String columnLabel, Object value) {
        connection = JDBCUtils.getConnection();
        String sql = "update user set ? = ? where uid = ?";
        try {
            ps = connection.prepareStatement(sql);
            ps.setObject(1,columnLabel);
            ps.setObject(2,value);
            ps.setInt(3,user.getUid());
            ps.executeUpdate();
        } catch (SQLException e) {
            System.out.println(this.getClass()+"updateUser");
            e.printStackTrace();
        }finally {
            JDBCUtils.close(connection,ps,rs);
        }
        System.out.println("修改成功");
    }

这种做法会产生SQL语法错误,正确的做法是在sql变量中拼接columnLabel,然后对另外两个占位符进行设置,这样就不会产生SQL的语法错误。

String sql = "update user set "+columnLabel+" = ? where uid = ?";
ps.setObject(1,value);
ps.setInt(2,user.getUid());

 

上一篇:(如何读写文件)流-------输入流


下一篇:117-BufferedIutputStream字节缓冲输入流