java jdbc 的sql语句、 根据时间查询表中数据、若有数据那么更新数据 如果没有数据、那么

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java jdbc 的sql语句、 根据时间查询表中数据、若有数据那么更新数据 如果没有数据、那么相关的知识,希望对你有一定的参考价值。

java jdbc 的sql语句、
根据时间查询表中数据、若有数据那么更新数据
如果没有数据、那么插入新数据 求大神般忙

具体思路可以分为以下几步:

    先通过查询判断该日期是否有数据(select count(*)  from  tableName where date=方法很多种 可以根据自己熟悉的方式来获取)

    判断以下结果如果有数据则update  否则  insert

追问

这个判断怎么写关键字是啥

if not exists ( select * from t_status where t_status_date=to_date('2014-07-25','yyyy-mm-dd') )
then insert into t_status values(t_status_seq.nextval,to_date('2014-07-25','yyyy-mm-dd',1,43,'mayun')
then update t_status set t_status_st=1 where t_status_date=to_date('2014-07-25','yyyy-mm-dd');

追答

这样貌似行不通.

追问

merge into t_status t1
using (select to_date('2014-07-25','yyyy-mm-dd')as t_status_date from dual) t2
on (t1.t_status_date = t2.t_status_date)
when matched then
update t_status set t_status_st=1 where t_status_date =to_date('2014-07-25','yyyy-mm-dd')
when not matched then
then insert into t_status
values(t_status_seq.nextval,to_date('2014-07-25','yyyy-mm-dd',1,43,'mayun'));

这句话提示缺少set

追答

set 问题没看出来 when not matched then
then insert 为什么这个地方两then

试试这个:
merge into t_status t1

using (select to_date('2014-07-25', 'yyyy-mm-dd') as t_status_date from
dual) t2

on (t1.t_status_date = t2.t_status_date)

when matched then

update set t_status_st = 1 where t_status_date = t2.t_status_date

when not matched then

insert into

values

(t_status_seq.nextval,

to_date('2014-07-25', 'yyyy-mm-dd', 1, 43, 'mayun'));

参考技术A 先SELECT判断存在,更组成下一SQL,是UPDATE、或 INSERT追问

怎么写啊、关键词、逻辑不会啊

if not exists ( select * from t_status where t_status_date=to_date('2014-07-25','yyyy-mm-dd') )
then insert into t_status values(t_status_seq.nextval,to_date('2014-07-25','yyyy-mm-dd',1,43,'mayun')
then update t_status set t_status_st=1 where t_status_date=to_date('2014-07-25','yyyy-mm-dd');

这是plsql的、我要在数据库上直接用查询

java jdbc sql语句参数的设置

select count(*) from ycms_pointstemporary where memberid = ? and actiontype = ? and createdate like'%=?%'";
这是sql语句
但是在下面set参数的时候 最后一个like那块怎样设置测可以达到
因为like那是个时间所

参考技术A like'%=?%'";
把like后面的单引号' 去掉
参考技术B 和签名两个一样的嘛,你把时间TO_CHAR一下就好了,转成字符类型就OK了;如果不转的话的单独处理时间类型

以上是关于java jdbc 的sql语句、 根据时间查询表中数据、若有数据那么更新数据 如果没有数据、那么的主要内容,如果未能解决你的问题,请参考以下文章

如何用java语言中如何执行sql查询语句

Java自学-JDBC 查询

java中怎么执行sql语句

使用准备好的语句查询列表 (JDBC)

Java学习路线

带有 sql 语句的 Java JDBC exec 过程