用户更新的sql语句

来源:互联网 发布:java 数组最大长度 编辑:程序博客网 时间:2024/09/21 06:18

前端修改user对象的某些属性,传入后端一个新的user对象,后端要更新update(User user)的实现时,sql语句怎么写?id为主键,不会被修改.其实思路非常简单,不能把属性的所有字段都进行sql语句的set更新,而是需求中要修改哪些字段就进行哪些字段的set操作.不准备修改的就不要写set进行修改.如下面,把所有的字段都重新set了一次,如果业务就是要修改所有字段那就必须这样.但是大多数情况仅仅是修改某些字段.

private final String UPDATE_USER = "UPDATE q_user SET user_id = ?, nickname = ?, realname = ?,password = ?, email = ?,status = ?, last_login_time = ? WHERE id = ? ";

下面的sql语句就是对部分属性的更新设置:

private static final String UPDATE_USER = "UPDATE q_user SET "+UserInfoStrings.nickname+" = ?, "+UserInfoStrings.realName+" = ?,"+UserInfoStrings.email+" = ?"+" WHERE "+UserInfoStrings.userId+" = ? ";

另外:以上sql语句不是直接的写出列名,而是通过一个类UserInfoStrings来调用这个列名,这样做的好处是在写代码的时候不容易写错列名,因为ide对类的方法变量等都由自动提示的功能.

public class UserInfoStrings {    public static final String id = "id";    public static final String userId = "user_id";    public static final String nickname = "nickname";    public static final String realName = "realname";    public static final String password = "password";    public static final String email = "email";    public static final String status = "status";    public static final String lastLoginTime = "last_login_time";}

上面通过类的静态变量取得列名,更好的方法是用枚举.


0 0
原创粉丝点击