是这样的,我现在想更新数据库某表的所有字段,对象是从页面传来的,但是对象里的某些属性为空,现在也不知道具体更新哪个字段,如果用preparedstatement设值时,空好像不行,大家是怎样处理的,最好不是判断属性是否为空,然后拼sql那样的。
解决方案 »
- String str=new String("abc");求解~
- 如何将字符串转为html标签元素?
- Struts2 AJAX --- return返回值疑问。。
- 请教j2EE RABC 权限管理如何实现
- 面试被问数据库事务传播级别
- 50分求助,Spring+Hibernate 无法级联删除(郁闷)
- 发布webservice后,生成server-config.wsdd,可是http://localhost:8080/axis/services下没有看到服务,请帮忙检查下是否缺少什么文件。
- Struts中几个区别问题
- Hibernate中insert出错inserted value too large for column
- 请看看我的毕业设计(产业信息资源库)的需求分析中的功能分析。
- struts页面 不换行
- 控制div不可被点击问题
ps.set...}2、不用框架的情况下。
除了用拼凑,我也不知道了。期待有巧妙的方法。
dynamic-insert
dynamic-update
这样就可以~
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "root", "huabo");
User user = new User();
user.setName("xo");
String sql = "update t_user set name = ? , pass = ? where id = 1";
PreparedStatement ps = con.prepareStatement(sql);
if(user.getName() !=null){
ps.setString(1, user.getName());
}else{
// 上面几个问号,下面就要写几个,这里的值可以先通过查询把对象的值拿到,如果为空的话就为原来值不进行修改。
ps.setString(1, "kao");
}
if(user.getPassword() != null){
ps.setString(2, user.getPassword());
}else{
ps.setString(2,"kao");
}
ps.executeUpdate(); }