欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JDBC程序更新数据库中记录的方法

程序员文章站 2024-03-06 13:50:56
本文实例讲述了jdbc程序更新数据库中记录的方法。分享给大家供大家参考,具体如下: 使用jdbc程序(eclipse、myeclipse)更新数据库(mysql)中的记录...

本文实例讲述了jdbc程序更新数据库中记录的方法。分享给大家供大家参考,具体如下:

使用jdbc程序(eclipse、myeclipse)更新数据库(mysql)中的记录时可以只修改记录的一个字段或几个字段,具体方法为可以加入如下被注释代码(前提是修改之前可以从数据库中得到该条记录)以user表为例

public class userdaojdbcimpl implements userdao {
 public void update(user u) {
 connection conn = null;
 preparedstatement ps = null;
 resultset rs = null;
 try {
  conn = jdbcutils.getconnection();
  string sql = "update user set name = ?, birthday = ?, money = ? where id=?";
  ps = conn.preparestatement(sql);
  // 首先得到该记录
  user user = getuserbyid(u.getid());
  // 判断字段是否需要修改
  if (u.getname() == null) {
  u.setname(user.getname());
  }
  if (u.getbirthday() == null) {
  u.setbirthday(user.getbirthday());
  }
  if (u.getmoney() == 0) {
  u.setmoney(user.getmoney());
  }
  ps.setstring(1, u.getname());
  ps.setdate(2, new java.sql.date(u.getbirthday().gettime()));
  ps.setdouble(3, u.getmoney());
  ps.setint(4, u.getid());
  int i = ps.executeupdate();
  system.out.println("成功向user表中更新" + i + "条记录");
 } catch (sqlexception e) {
  e.printstacktrace();
 } finally {
  jdbcutils.free(rs, ps, conn);
 }
 }
 public user getuserbyid(int id) {
 connection conn = null;
 preparedstatement ps = null;
 resultset rs = null;
 user user = null;
 try {
  conn = jdbcutils.getconnection();
  string sql = "select * from user where id = ?";
  ps = conn.preparestatement(sql);
  ps.setint(1, id);
  rs = ps.executequery();
  if (rs.next()) {
  user = new user();
  user.setid(rs.getint("id"));
  user.setname(rs.getstring("name"));
  user.setbirthday(rs.getdate("birthday"));
  user.setmoney(rs.getdouble("money"));
  }
 } catch (sqlexception e) {
  e.printstacktrace();
 } finally {
  jdbcutils.free(rs, ps, conn);
 }
 return user;
 }
}

调用:

public static void main(string[] args) {
 userdao ud = new userdaojdbcimpl();
 user user = new user();
 user.setid(9);
 user.setname("老师");//只修改name和birthday属性
 date d = null;
 try {
  simpledateformat sdf = new simpledateformat("yyyy-mm-dd");
  d = sdf.parse("1999-9-14");
 } catch (parseexception e) {
  e.printstacktrace();
 }
 user.setbirthday(d);
 //user.setmoney(1234);不修改money属性
 ud.update(user);
}

希望本文所述对大家java程序设计有所帮助。