工具类:SqlInConditionStringUtil
其中:getOracleSQLIn方法适合单一SQL语句
getOracleSQLIn方法适合嵌套SQL语句
public static String getOracleSQLIn(List<String> ids, int count, String field) {
count = Math.min(count, 1000);
int len = ids.size();
int size = len % count;
if (size == 0) {
size = len / count;
} else {
size = (len / count) + 1;
}
StringBuilder builder = new StringBuilder();
for (int i = 0; i < size; i++) {
int fromIndex = i * count;
int toIndex = Math.min(fromIndex + count, len);
String productId = StringUtils.defaultIfEmpty(StringUtils.join(ids.subList(fromIndex, toIndex), "','"), "");
if (i != 0) {
builder.append(" OR ");
}
builder.append(field).append(" IN ('").append(productId).append("')");
}
return StringUtils.defaultIfEmpty(builder.toString(), field + " IN ('')");
}
public static String getOracleSQLIn(List<String> ids, int count, String field, boolean flag) {
count = Math.min(count, 1000);
int len = ids.size();
int size = len % count;
if (size == 0) {
size = len / count;
} else {
size = (len / count) + 1;
}
StringBuilder builder = new StringBuilder();
for (int i = 0; i < size; i++) {
int fromIndex = i * count;
int toIndex = Math.min(fromIndex + count, len);
String productId = StringUtils.defaultIfEmpty(StringUtils.join(ids.subList(fromIndex, toIndex), "','"), "");
if (i != 0) {
builder.append(" OR ");
}
if(flag == true)
{
builder.append(field).append(" IN (").append(productId).append(")");
}
}
return StringUtils.defaultIfEmpty(builder.toString(), field + " IN ('')");
}
方法调用:
/**
* @Title: getInConditionValue
* @Description: 获取oracle in 条件串
* @param @param fieldName
* @param @param value
* @param @return
* @return String
* @throws
*/
private String getInConditionValue(String fieldName, String value) {
// 初始化返回值
StringBuffer inConditionSql = new StringBuffer();
if(value != null && !"".equalsIgnoreCase(value)) {
// 登记机关查询条件
inConditionSql.append("(");
inConditionSql.append(SqlInConditionStringUtil.getOracleSQLIn(Arrays.asList(value.split(",")), 1000, fieldName));
inConditionSql.append(")");
}
return inConditionSql.toString();
}
查询条件添加:
if(marPlaConditionInfoBean.getIndCodeStr() != null
&& !"".equalsIgnoreCase(marPlaConditionInfoBean.getIndCodeStr())) {
// 添加行业代码查询条件
sql.append(" AND ");
sql.append(getInConditionValue("INDUSTRYCO", marPlaConditionInfoBean.getIndCodeStr()));
}
分享到:
相关推荐
本资源"MLDN魔乐科技JAVA培训_Oracle课堂11_子查询.rar"聚焦于Java与Oracle数据库交互时的子查询使用技巧,对于提升开发者在实际项目中的能力有着显著帮助。 子查询,简单来说,就是在SQL查询语句中嵌套另一个查询...
根据给定的文件信息,以下是对“java_oracle_day05.pdf”中涉及的关键知识点的详细解析: ### 约束条件(应用级别) #### 主键(Primary key,简称PK) 主键是一种特殊的唯一性约束,它确保了表中每一行记录的唯一...
本教程"MLDN魔乐科技JAVA培训_Oracle课堂5_限定查询"聚焦于如何利用WHERE子句进行有效的数据筛选,以及在Oracle数据库环境下,掌握各种限定符的使用技巧。 WHERE子句是SQL查询语句中的核心部分,它允许我们根据指定...
根据提供的标题、描述、标签及部分内容,我们可以提炼出与Oracle数据库相关的练习题目的知识点。以下是对这些知识点的详细解析: ### 1. 查询第30部门的所有员工 **SQL语句**: ```sql SELECT ename FROM emp WHERE...
### Oracle集合类型输出参数的PL/SQL存储过程及其Java调用 #### 1. 引言 存储过程因其高效执行、事务处理能力以及安全性,在数据库应用程序中被广泛应用。特别是使用Oracle数据库时,PL/SQL(一种专为Oracle设计的...
在SQL面试中,掌握一些关键的查询技巧是至关重要的,特别是对于Java开发者而言,因为数据库操作经常是应用程序的核心部分。...在实际面试中,理解并能优化这些查询将有助于展示你的SQL技能和解决问题的能力。
2. **使用适当的加密模式**:选择合适的加密模式也是解决问题的关键之一。例如,使用CBC模式时,需要确保数据长度是16字节的倍数;而在使用CTR模式时,则不需要考虑数据长度的问题。 #### 五、总结 通过本文的介绍...
总结而言,使用JDBC操纵Oracle数据库中的BLOB字段,无论是通过现代的`setBinaryStream`方法还是古老的分步写入策略,都能有效实现对多媒体数据的高效管理。开发者应根据具体的应用需求和环境选择最合适的操作方式。
- `view_emp2`: 包含`emp`表中薪资大于等于8000的所有记录的视图,并带有检查选项(只能对满足视图定义条件的数据进行插入或更新操作)。 #### 使用视图 ```sql SELECT * FROM view_emp; SELECT * FROM view_emp2;...
若不使用绑定变量,尤其是来自Java等应用程序的SQL语句,会导致大量硬解析(Hard Parse),即数据库必须为每个不同的SQL文本创建新的解析计划,这不仅消耗了更多的CPU资源,还可能导致共享池内存的快速耗尽,进而影响...
面向过程编程是一种以过程为中心的编程范式,强调通过函数或子程序来组织代码,以一步步解决问题。面向过程的优点在于性能较高,因为不涉及复杂的类结构和实例化过程,适合资源有限的环境,如单片机和嵌入式系统。...
### Oracle存储过程实现分页查询知识点详解 #### 一、背景与目的 在数据库操作中,分页查询是非常常见的需求之一。特别是在数据量较大的场景下,分页不仅可以提高查询效率,还能改善用户体验。Oracle数据库提供了...
- Oracle中使用“||”操作符进行字符串连接,和Java中使用“+”操作符的不同之处。 - DISTINCT关键字的使用,用于获取唯一不同的值。 2. 条件查询: - WHERE语句的使用来过滤结果集。 - 使用单引号定义字符串...
是oracle权限最高的用户,登录时不能用normal。 2. system用户:超级用户,默认是SYSOPT(操作数据库的人),不过它也能以SYSDBA的权限登陆。拥有普通dba角色权限。 3. scott用户:是个演示用户,是让你学习Oracle用的...
//////////////////////////////////////////////////having函数对于group by函数的过滤 不能用where////////////////////////////////////// 58、select deptno, avg(sal) from emp group by deptno having avg...
`表示部门编号为10且薪水大于1000的员工。 12. **模糊查询**:`LIKE`关键字支持模糊匹配,如`LIKE '%ALL%'`匹配包含"ALL"的名称,`LIKE '_A%'`匹配第二个字母为"A"的名称。 13. **转义字符**:在`LIKE`中,可以...
5. SGA(System Global Area):包括数据库高速缓存、重做日志缓冲区、共享池、Java池、大池等,是Oracle数据库运行时的内存区域。 6. 表空间管理:用户表空间可以被设置为脱机状态,CREATE TABLESPACE语句中的...
这个简单的Java程序展示了如何利用基本的数学知识和编程逻辑来解决问题。在实际项目中,这样的功能可能会被封装在一个类中,或者作为一个更复杂的系统的一部分。无论何时,理解并掌握编程语言的基础和算法原理都是至...
在命令的where子句中给出1=2,表示条件不可能成立,因而只能复制表结构,而不能复制任何数据到新表中去。另外,还可以复制一个表的部分列定义或部分列定义及其数据。 三、 Oracle数据库数据查询 1、单表查询 2、多...