将界面查询条件通过java解析成sql语句

问题描述

将界面查询条件通过java解析成sql语句

新手求助,现在做一个东西,需要将界面查询的条件进行解析成sql条件,比如传进来的
条件为(!ewew&!1)&!ce|( wewe|测试) 和查询字段为content,那么得到的解析语句为
(( content not like '%ewew%' and content not like '%1%') and ( content not like '%ce%') or ( content like '% wewe%' or content like '%测试%') ),请问各位
大牛有什么好的办法进行解决啊。

解决方案

基本就是自己定义字符串格式,然后你自己再进行sql语句对应的拼接。

解决方案二:

参考:http://download.csdn.net/download/liufei8282/1107125
http://www.iteye.com/topic/481407
需要一点编译原理的知识

解决方案三:

content not like '%ewew%1%ce%' and content like '%wewe%测试%'

时间: 2016-03-02

将界面查询条件通过java解析成sql语句的相关文章

10种Java开发者编写SQL语句时常见错误_MsSql

Java开发者对于面向对象编程思维与命令行编程思维的协调程度,取决于他们如下几种能力的水平: 技巧(任何人都可以编写命令行形式的代码) 教条(有的人使用"模式 - 模式"的方式,即模式无处不在,并以名字作为标识) 情绪状况(在初期,真正面向对象形式的代码比起命令式代码会更加难懂.) 但是,当Java开发人员编写SQL语句时,一切都变得不同了.SQL是一种说明式语言,与面向对象思想和命令式思想无关.在SQL语言中,查询非常容易表达.但它也不是那么容易以最佳或最正确地方式编写出来.开发人员

10种Java开发者编写SQL语句时常见错误

Java开发者对于面向对象编程思维与命令行编程思维的协调程度,取决于他们如下几种能力的水平: 技巧(任何人都可以编写命令行形式的代码) 教条(有的人使用"模式 - 模式"的方式,即模式无处不在,并以名字作为标识) 情绪状况(在初期,真正面向对象形式的代码比起命令式代码会更加难懂.) 但是,当Java开发人员编写SQL语句时,一切都变得不同了.SQL是一种说明式语言,与面向对象思想和命令式思想无关.在SQL语言中,查询非常容易表达.但它也不是那么容易以最佳或最正确地方式编写出来.开发人员

thinkphp中多表查询中防止数据重复的sql语句(必看)_php技巧

下面先来看看例子: table id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. select *, count(distinct name) from table group by name 结果: id name count(distinct name) 1 a 1 2 b 1 3 c 1 最后一 项是多余的,不用管就行了 tp2.0手册   搜索连贯操作 可看到相关的资料 SELECT cat_id, COUNT(*) AS

查询及删除重复记录的SQL语句

查询及删除重复记录的sql语句 (一) 比方说 在a表中存在一个字段"name", 而且不同记录之间的"name"值有可能会相同, 现在就是需要查询出在该表中的各记录之间,"name"值存在重复的项: select name,count(*) from a group by name having count(*) > 1 如果还查性别也相同大则如下: select name,sex,count(*) from a group by nam

Expression解析后转换成SQL语句?

问题描述 请教各位大牛,有这么一个方法:///<paramname="p">分页对象</param>///<paramname="fields">实体属性</param>///<paramname="filter">过滤条件</param>///<returns></returns>IEnumerable<T>GetList(Pagingp

从500万条数据中查询,求优化一条SQL语句

问题描述 表结构如下,里面有500W数据.我没有权限修改这个表,所以请大家给我优化下SQL查询CREATE TABLE IF NOT EXISTS `jdp_tb_trade` ( `tid` bigint(20) NOT NULL, `status` varchar(64) DEFAULT NULL, `type` varchar(64) DEFAULT NULL, `seller_nick` varchar(32) DEFAULT NULL, `buyer_nick` varchar(32)

优化SQL查询:如何写出高性能SQL语句

1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择"索引查找"方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 "全表扫描"方式. 可见,执行计划并不是固定的,它是"个性化的".产生一个正确的"执行计划"有两点很重要:

java中执行sql语句参数设置问题

问题描述 想问下:java里面:1.String cust_no="123456";StringBuffer qry = new StringBuffer();qry.append(" SELECT * ");qry.append(" FROM TORDERDETAIL ");qry.append(" where CUST_NO =? ");pStmt = conn.prepareStatement(qry.toString(

JAVA无法执行SQL语句,在Postgresql中执行正常?不知道什么原因

问题描述 SQL语句如下:java中执行语句如下:sql="selectname,num,asText(geom)asgeom,addressfromhzpbwherehzpb.c_idin(selectc_idfromcitywherec_namelike'%江%')"rs=stmt.executeQuery(sql);在java中就是无值输出 解决方案 解决方案二:该回复于2009-04-13 13:08:35被版主删除解决方案三:子查询里没有值吧