请问下在java jdbc中:sql语句中含有or 时,该如何为这个占位符(?)赋值····求解 如下图:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问下在java jdbc中:sql语句中含有or 时,该如何为这个占位符(?)赋值····求解 如下图:相关的知识,希望对你有一定的参考价值。

比如说:通过一个或多个条件来查询时,则从数据库中读取与之相符的一条或多条数据

参考技术A 无论怎样,通配符都是遵循这循序来的,JDBC从0开始,hibernate从1开始。 参考技术B 为问号占位符赋值只和位置有关系,和写在哪里无关系

pst.setString(1,"aa");
即为第一个占位符赋值,仅此而已
参考技术C 没有or的时候怎么赋值,现在还怎么赋值,是和以前一样的。 参考技术D 传递两个变量,所以是两个?
~~~~~~~~~~~~~~~~~~~

java jdbc 执行sql语句批量操作问题

我用java jdbc写的程序执行sql语句(mysql):insert into table_a (id,name,sex,email) select table_c.* from table_b,table_c where table_b.name = table_c.name;其中table_c的结构和table_a的结构一样,但是table_c中有800万条数据,sql执行后table_a中也得有十几万条数据,请问如何批量操作或者什么语句能提高执行效率?

sql优化:
1.name字段创建索引
2.“table_c.*” 不要用”*“号,可以换成table_c.id,table_c.name,table_c.sex,table_c.email
如果可以的话,你和以在insert into table_a 中间加 append ,这样写 insert /*+ append */ into
希望能帮到你!
参考技术A 你这样写已经不需要优化了。楼上说什么查出来放内存再插入都是在坑你,insert into xxx select xx from 这种sql在同一个数据库中速度最快了,数据库已经对它做了批量处理。 参考技术B prepareStatement 和Statement 的executeBatch 用了?追问

这个,我不知道怎么用prepareStatement的executeBatch,那个不是用来批量导入不同的sql语句的吗,我这就一个sql语句……

追答

你可以查一下JAVA JDBC批量操作的资料,看一下,希望对你有帮助

参考技术C 手动提交事物,大概100-500条 commit 一下追问

求大神给一小段代码,这是一个sql语句,从查询的结果中插入到另一张表,查询的时候应该很慢,如果是边查边插数据,我不会写啊,而且好像批处理不能插入select语句吧

追答

不是java吗 用java查出一部分数据放在内存,在插入呗,然后以此循环查询插入,还有你这SQL看着这么别扭呢,表结构一样还这样弄干嘛··,我知道了啊哎,才10几万条么,select table_c.* from table_b,table_c where table_b.name = table_c.name; 先查询这个,放java内存,然后执行插入insert into table_a (id,name,sex,email)这样不就快多了··

以上是关于请问下在java jdbc中:sql语句中含有or 时,该如何为这个占位符(?)赋值····求解 如下图:的主要内容,如果未能解决你的问题,请参考以下文章

oracle 查找某字段中含有回车换行的记录,请问怎么写SQL?

java程序执行一条sql语句的时候就报JDBC连接错误 启动tomcat 的时候不报错 请问有可能是哪里出问题了谢谢

请问下在sql server中,我创建约束的时候没有定义约束名,它默认的约束名是啥呀?

JDBC基础02

java中jdbc多表操作如何事物回滚

java中怎么执行sql语句