繁体   English   中英

使用Java将日期值插入oracle无法正常工作

[英]insert date value into oracle using java not working

我试图将日期格式从Java EE Eclipes插入Oracle。 我可以插入一个空值,但不能插入日期值。 日期会在控制台中打印出来,但是不会更新数据库。 这是我的查询:

插入日期值:(NOT WORKING) uDate的控制台输出= 20 / Sep / 16

public void updateUnsubscribe(String empid) { 
  DateFormat df = new SimpleDateFormat("dd/MMM/yy");
  String uDate = df.format(new Date());
  String unSub = "udate MYDB set edate ='" + uDate + '" where emp = "empid"';
}

插入NULL值:(WORKING) uDate = null的控制台输出

public void updateSubscribe(String empid) { 
  Date toNull = null;
  String sub = "udate MYDB set edate ='" + toNull + '" where emp = "empid"';
}

我没有任何错误,唯一的问题是日期字段未插入日期。 我想念什么? 我是否未正确格式化日期字段?

您可以使用oracle to_date函数将varchar转换为日期值,例如:

public void updateUnsubscribe(String empid) { 
  DateFormat df = new SimpleDateFormat("dd/MM/yy");
  String uDate = df.format(new Date());
  String unSub = "udate MYDB set edate =to_date('" + uDate + ', 'dd/MM/yyyy')" where emp = "empid"';
}

但是,相反,最好将JDBC PreparedStatement用于此任务:

public void updateUnsubscribe(String empid) { 
  PreparedStatement ps = conn.prepareStatement("update MYDB set edate=? where emp=?");
  ps.setTimestamp(1, new java.sql.Timestamp(new Date()));
  ps.setString(2, empid);
  ps.executeUpdate();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM