- 浏览: 418705 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (244)
- struts2 (15)
- ognl (1)
- hibernate (17)
- gwt (17)
- GROOVY (2)
- GRAILS学习 (7)
- SPRING (4)
- AJAX (2)
- JQUERY (6)
- XML (1)
- DWR (3)
- 线程 (0)
- SVN (0)
- json (1)
- anotation (0)
- 反射 (2)
- rapidframework (0)
- OA工作流 (2)
- 事务 (0)
- mysql (0)
- oracle (26)
- EXTJ (0)
- 求职 (2)
- 随笔 (22)
- 注释 (1)
- java综合 (30)
- 设计模式 (1)
- JSP SERVLET (2)
- 插件 (7)
- 应用 (3)
- HTML (5)
- flex (13)
- android (8)
- javascript (14)
- Exception (0)
- Linux (2)
- 计算机常识 (3)
- EXCEL (2)
- 正则表达式 (1)
- 开源工具 (2)
- 测试 (1)
- 生活 (7)
- 房子 (0)
- 购房大学 (4)
- UML (1)
- 服务器 (1)
- 发展 (1)
- 英语 (1)
- 项目管理 (1)
- 摘 (1)
- 网站 (1)
最新评论
-
a347911:
架构师教程:https://note.youdao.com/s ...
架构师之路--- 一个四年 JAVA 程序员的工作经历 转 -
hzxlb910:
对我帮助很大。
架构师之路--- 一个四年 JAVA 程序员的工作经历 转 -
xly_971223:
引用因此,while (!isInterrupted())也可 ...
Java 终止线程方法 -
zdglt88:
其实这个datagrid挺简单的,没有难度
Jquery easy ui 之datagrid简介 -
完善自我:
抓住重点,支持一下!
Jquery easy ui 之datagrid简介
package com.ccid.str;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestHqlString {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Date date1 = new Date();
Date date2 = new Date();
String[] baseArray = {"BusinessType","Methodology","CaseBase"};
String str1 = "参数1";
//getKnowledgeBase(str1,date1,date2,baseArray);
String str2 = "参数1 参数2 ";
getKnowledgeBase(str2,date1,date2,baseArray);
String str3 = "参数1 参数2 参数3 ";
//getKnowledgeBase(str3,date1,date2,baseArray);
String str4 = "参数1 参数2 参数3 参数4 ";
//getKnowledgeBase(str4,date1,date2,baseArray);
}
public static String getKnowledgeBase(String searchStr, Date startDate, Date endDate,String[] baseArray){
String[] searchArray = searchStr.trim().split(" ");
String hqlStr = "from ";
String tableStr = "";
String whereStr = "";
//加入时间条件
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
for (int m = 0; m < baseArray.length; m++) {
tableStr = tableStr + baseArray[m] + ", ";
String whereDateStr = "";
if (!baseArray[m].equals("CaseBase")) {
whereDateStr = baseArray[m] + ".createDate between " + f.format(startDate) + " and " + f.format(endDate) + " and ";
}
String whereLikeStr = "";
for (int i = 0; i <searchArray.length; i++) {
whereLikeStr = whereLikeStr + baseArray[m] + ".name like '%" + searchArray[i] + "%' or ";
}
whereStr = whereStr + "(" + whereDateStr + "(" + whereLikeStr.substring(0, whereLikeStr.lastIndexOf("or") - 1) + ")) or ";
}
tableStr = tableStr.substring(0, tableStr.lastIndexOf(",") - 1);
whereStr = whereStr.substring(0, whereStr.lastIndexOf("or") - 1);
System.out.println(hqlStr + tableStr + " where " + whereStr);
// if (baseArray[m] == "BusinessType") {
// tableStr = tableStr + " BusinessType b";
// whereStr = whereStr + "((b.createDate between " + f.format(startDate) + " and " + f.format(endDate) + ") and ( ";
// for (int i = 0; i <searchArray.length; i++) {
// whereStr = whereStr + "b.name like '%"+searchArray[i]+"%'";
// if (i != searchArray.length-1) {
// whereStr = whereStr + " or ";
// }
// }
// whereStr = whereStr + " )) ";
// }
// if (baseArray[m] == "Methodology") {
// tableStr = tableStr + " Methodology m";
// whereStr = whereStr + "((m.createDate between " + f.format(startDate) + " and " + f.format(endDate) + ") and (";
// for (int i = 0; i <searchArray.length; i++) {
// whereStr = whereStr + " m.name like '%"+searchArray[i]+"%' ";
// if (i != searchArray.length-1) {
// whereStr = whereStr + " or ";
// }
// }
// whereStr = whereStr + " )) ";
// }
// if (baseArray[m] == "CaseBase") {
// tableStr = tableStr + " CaseBase c";
// whereStr = whereStr + " ( ";
// for (int i = 0; i <searchArray.length; i++) {
// whereStr = whereStr + " c.name like '%"+searchArray[i]+"%' ";
// if (i != searchArray.length-1) {
// whereStr = whereStr + " or ";
// }
// }
// whereStr = whereStr + " )";
// }
// if (m != baseArray.length-1) {
// tableStr = tableStr + ",";
// whereStr = whereStr + " or ";
// }
// }
// hqlStr = hqlStr + tableStr + whereStr;
// System.out.println(hqlStr);
// System.out.println("################");
return hqlStr;
}
}
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestHqlString {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Date date1 = new Date();
Date date2 = new Date();
String[] baseArray = {"BusinessType","Methodology","CaseBase"};
String str1 = "参数1";
//getKnowledgeBase(str1,date1,date2,baseArray);
String str2 = "参数1 参数2 ";
getKnowledgeBase(str2,date1,date2,baseArray);
String str3 = "参数1 参数2 参数3 ";
//getKnowledgeBase(str3,date1,date2,baseArray);
String str4 = "参数1 参数2 参数3 参数4 ";
//getKnowledgeBase(str4,date1,date2,baseArray);
}
public static String getKnowledgeBase(String searchStr, Date startDate, Date endDate,String[] baseArray){
String[] searchArray = searchStr.trim().split(" ");
String hqlStr = "from ";
String tableStr = "";
String whereStr = "";
//加入时间条件
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
for (int m = 0; m < baseArray.length; m++) {
tableStr = tableStr + baseArray[m] + ", ";
String whereDateStr = "";
if (!baseArray[m].equals("CaseBase")) {
whereDateStr = baseArray[m] + ".createDate between " + f.format(startDate) + " and " + f.format(endDate) + " and ";
}
String whereLikeStr = "";
for (int i = 0; i <searchArray.length; i++) {
whereLikeStr = whereLikeStr + baseArray[m] + ".name like '%" + searchArray[i] + "%' or ";
}
whereStr = whereStr + "(" + whereDateStr + "(" + whereLikeStr.substring(0, whereLikeStr.lastIndexOf("or") - 1) + ")) or ";
}
tableStr = tableStr.substring(0, tableStr.lastIndexOf(",") - 1);
whereStr = whereStr.substring(0, whereStr.lastIndexOf("or") - 1);
System.out.println(hqlStr + tableStr + " where " + whereStr);
// if (baseArray[m] == "BusinessType") {
// tableStr = tableStr + " BusinessType b";
// whereStr = whereStr + "((b.createDate between " + f.format(startDate) + " and " + f.format(endDate) + ") and ( ";
// for (int i = 0; i <searchArray.length; i++) {
// whereStr = whereStr + "b.name like '%"+searchArray[i]+"%'";
// if (i != searchArray.length-1) {
// whereStr = whereStr + " or ";
// }
// }
// whereStr = whereStr + " )) ";
// }
// if (baseArray[m] == "Methodology") {
// tableStr = tableStr + " Methodology m";
// whereStr = whereStr + "((m.createDate between " + f.format(startDate) + " and " + f.format(endDate) + ") and (";
// for (int i = 0; i <searchArray.length; i++) {
// whereStr = whereStr + " m.name like '%"+searchArray[i]+"%' ";
// if (i != searchArray.length-1) {
// whereStr = whereStr + " or ";
// }
// }
// whereStr = whereStr + " )) ";
// }
// if (baseArray[m] == "CaseBase") {
// tableStr = tableStr + " CaseBase c";
// whereStr = whereStr + " ( ";
// for (int i = 0; i <searchArray.length; i++) {
// whereStr = whereStr + " c.name like '%"+searchArray[i]+"%' ";
// if (i != searchArray.length-1) {
// whereStr = whereStr + " or ";
// }
// }
// whereStr = whereStr + " )";
// }
// if (m != baseArray.length-1) {
// tableStr = tableStr + ",";
// whereStr = whereStr + " or ";
// }
// }
// hqlStr = hqlStr + tableStr + whereStr;
// System.out.println(hqlStr);
// System.out.println("################");
return hqlStr;
}
}
发表评论
-
hibernate抓取策略
2012-04-20 09:58 1293Hibernate3 定义了如下几种抓取策略: 连接抓取( ... -
BLOB和CLOB的区别以及在ORALCE中的插入和查询操作
2012-04-09 12:59 1570ORACLE中的大对象: LONG: 可变长的字符串数据,最 ... -
Spring中关于SqlRowSet的Invalid scale size. Cannot be less than zero异常处理
2012-03-28 13:10 3788在使用Spring中使用JdbcTemplate.queryF ... -
hibernate open session in view 抛出异常解决方法
2012-03-23 20:52 1187http://www.blogjava.net/dreamst ... -
jdbcTemplate使用总结1
2011-09-20 15:16 1366SqlRowSet rs = jdbcTemplate.que ... -
java.lang.String 与string
2011-06-24 15:58 1031个人认为string应该是java.lang.String与数 ... -
hibernate一对多sort和order by
2011-04-15 09:23 15701. 從資料庫的觀點 ... -
Hibernate对集合排序
2011-04-15 09:19 1712Hibernate对集合中的元素支持两种排序方式: Ø 在数 ... -
Hibernate之deleted object would be re-saved by cascade 异常的解决
2011-02-24 11:31 936以下是我在网上找到的, 我用了第二种方法,奇怪的是: 我在ac ... -
Hibernate学习笔记
2011-02-12 16:25 1245HQL 注意事项: 1.请把以前sql中的表名换成类名,把字 ... -
hql 多表查询
2011-01-20 18:19 1142String sql = "select test1 ... -
[原创]多条件模糊查询的通用代码
2010-12-22 18:31 1507str_query1 = "se ... -
Hibernate中使用Hql查询出一定时间段的记录【 Date 比较】
2010-12-22 18:30 20008// 初步过滤出符合条件的区域ID String sql = ... -
Hibernate 中 UUID.HEX的实现机制??
2010-11-26 10:13 3588Hibernate主键生成方式 Key ... -
为什么我们要研究Hibernate ?-----转载自J道
2010-10-08 15:56 1065最近论坛上关于Hibernate ... -
HQL中修改对象属性的句子
2010-05-20 15:54 2087def newInstance = Organization. ...
相关推荐
Vue语法之拼接字符串的示例代码详解 通过本篇文章,我们可以了解到Vue语法中拼接字符串的示例代码的使用方法。该文章主要介绍了Vue语法中拼接字符串的示例代码,并提供了实践示例,以便大家更好地理解和应用。 ...
day08_09_练习_按指定格式拼接字符串
今天,我跟大家一起来学习Python拼接字符串的七种方式。 1、来自C语言的%方式 print('%s %s' % ('Hello', 'world')) >>> Hello world %号格式化字符串的方式继承自古老的C语言,这在很多编程语言都有类似的实现。上...
在Python中,struct模块用于处理二进制数据,它能够将Python的值与C结构体之间的转换打包成Python字符串表示,也可以将打包的字符串解包为Python值。这是处理二进制数据,特别是来自文件、网络连接等不同来源的二...
### Access数据库自定义连接字符串详解 #### 一、引言 在进行网页开发时,连接数据库是一项基础且重要的任务。Microsoft Access作为一款轻量级的桌面数据库系统,因其易用性和与Office套件的集成性而被广泛使用。...
### Python3字符串学习教程 #### 引言 Python 作为一种流行的编程语言,其简洁明了的语法特性使得它成为初学者的理想选择。本教程重点介绍 Python3 中的字符串处理技术,帮助初学者掌握这一基本而重要的概念。字符...
通过阅读`StrUtil.java`源代码,我们可以深入了解每个方法的具体实现,学习如何优化字符串操作,并可能从中获取灵感,为自己的项目创建类似的工具类。对于Java开发者来说,熟悉和掌握这样的工具类是非常有益的。
字符串处理还包括其他一些基本操作,如拼接、查找、替换等。例如,`strcat()` 和 `strncat()` 可以用来连接两个或多个字符串,`strstr()` 可以查找子字符串在主字符串中的位置,`strchr()` 和 `strrchr()` 则分别...
此外,为了提高代码的可读性,建议在运算符周围使用空格,尤其是在函数调用和拼接字符串时。虽然这不强制执行,但良好的编码风格会让代码更易于理解。例如: ```go title = "QAX" + "NB" // 阅读体验提升 ``` 在这个...
对于每个字符,我们可以单独进行转换,然后将结果拼接成最终的十六进制字符串。 2. **十六进制转字符串**:相反的过程需要先使用“十六进制到整数”函数将十六进制字符串转换为十进制,再用“整数到字符串”函数将...
1. **字符串拼接**:将多个字符串合并为一个,这通常通过`+`运算符或者`join()`方法来实现。 2. **字符串分割**:使用`split()`函数将字符串按照指定分隔符进行切割,返回一个字符串列表。 3. **查找与替换**:`find...
这可能包括创建字符串,拼接字符串,格式化数字,以及可能使用某些字符串函数。通过学习这个示例,你将能够更好地掌握MATLAB中的字符串处理技巧,这对于编写MATLAB程序来说是非常有用的。 总结,MATLAB的字符串处理...
标题《C语言字符、字符串定义及相关函数》所涉及的知识点主要集中在C语言中字符与字符串的表示方法、存储机制以及常用的字符...此外,了解字符串在内存中的存储方式以及如何使用指针和数组是深入学习C语言的必要条件。
例如,频繁使用`+`进行字符串拼接会创建大量中间字符串,此时使用`StringBuilder`类会更高效,因为它允许在内存中动态地构建和修改字符串(性能提示12.2)。 字符在C#中由`char`类型表示,它是单个Unicode字符。...
使用concat()方法拼接字符串的基本语法如下: string.concat(string2, string3[, ..., stringN]); 其中,string是原始字符串,string2到stringN是要拼接的其他字符串。方法返回的是一个新的字符串,其中包含了原始...
- **拼接**:可以使用`+`运算符或`std::string::append()`方法拼接字符串。 - **查找和替换**:`find()`用于查找子串,`replace()`用于替换子串。 - **拷贝和截取**:`substr()`可以截取字符串的一部分,`copy()`...
2. **字符串操作**:字符串操作包括拼接、截取、查找子串、替换子串、反转字符串等。例如,`strcat()`函数用于连接两个字符串,`strstr()`函数用于查找子串的位置,`strcpy()`用于复制字符串。 3. **字符串处理算法...
1. **拼接**:将两个或多个字符串连接成一个新的字符串,这通常通过`+`运算符或者`join()`方法实现。 2. **查找与替换**:使用`indexOf()`或`search()`来查找子字符串,用`replace()`或正则表达式进行替换操作。 3. ...
在处理大量字符串时,可以使用`StringBuilder`类,它提供了一个可变的字符序列,适用于构建或修改字符串,尤其在循环中拼接字符串时,性能优于多次调用`+`或`Concat()`。 在内存管理方面,数组和字符串都是引用类型...
在实际开发中,结合`StringBuilder`类处理大量字符串拼接,以及利用正则表达式的强大功能进行数据验证和清洗,都将使你的代码更加高效和专业。通过深入阅读《C#字符串和正则表达式参考手册》,你将能够更全面地理解...