jdbc 动态sql语句拼接 查询不出结果

public List queryByCondition(String command, String description) {
// message列表
List messageList = new ArrayList();
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 数据库的连接
Connection conn;
conn = DriverManager
.getConnection("jdbc:mysql://localhost:3306/micro_message",
"root", "root");
StringBuffer sql = new StringBuffer(
"select ID,COMMAND,DESCRIPTION,CONTENT from message where 1=1");
List paramList = new ArrayList();
if (command != null && !command.trim().equals("")) {
sql.append(" and COMMAND=?");
paramList.add(command);
}
if (description != null && !description.trim().equals("")) {
sql.append(" and DESCRIPTION='%' ? '%'");
paramList.add(description);
}
PreparedStatement pstmt = conn.prepareStatement(sql.toString());
for(int i=0;i<paramList.size();i++){
pstmt.setString(i+1, paramList.get(i));
}
System.out.println(sql);
ResultSet re = pstmt.executeQuery();
while (re.next()) {
Message message = new Message();
message.setId(re.getInt(1));
message.setCommand(re.getString(2));
message.setDescription(re.getString(3));
message.setContent(re.getString(4));
messageList.add(message);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return messageList;
}

0

2个回答

报错吗……。。。。

0

吧sql 语句拷贝出来放到sql环境中再测试看看。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
利用ThreadLocal完美解决JDBC动态拼接SQL的多条件查询
再摘一段JDBC多条件查询的单元测试实例(源码可在jSQLBox项目下找到),大家知道在条件不确定的情况下,执行动态拼接生成的SQL,即要保证SQL安全性,防止SQL注入,又要保证编码的简洁性,这一直是一个头痛的问题。 jSQLBox利用ThreadLocal解决了这个问题:rnJava代码 收藏代码rnrn public class ConditionQueryTest { rn ...
JDBC动态参数,动态sql示例
/**rn* 图书借阅rn* rn* @param xhrn*            学号rn* @param bookNamern*            图书名称rn* @param bookStatusrn*            图书状态rn* @returnrn*/rnpublic List> tsjy(String xh, String bookName, String bookSta
动态sql语句拼接查询条件
SELECT t."NAME",TC.TASK_STATE,count(1),sum(case when tc.task_time rnwhere t.id = TC.TASK_ID and tc.task_STATE != 3 and tc.task_STATE != (case when t.NAME = '客户续保' then 2 else 4 end) rnGROUP BY t."NAME
用jdbc做查询操作时动态拼接参数报SQL语法错误的问题
主要是在java中使用jdbc做查询操作动态拼接查询语句的参数时遇到的问题
JDBC 用PreparedStatement语句动态操作SQL语句
1.Statement 和 PreparedStatement:nStatement接口只能操作静态SQL语句(即SQL语句中操作的数据表,变量等等都是固定的,不能变化的)。而PreparedStatement接口则可以动态操作SQL语句(即SQL语句中的变量的值是可以变化的)。nnn2.问号“?”n问好的作用:在一个SQL语句中,把需要变化的部分用“?”代替。n如:String sq
JDBC中动态拼接SQL的工具类
JDBC中动态拼接SQL的工具类。 对于使用纯SQL访问数据库的同学会有些帮助。 并具有一定的扩展性。
sql语句动态拼接多个查询条件查询数据库
sql语句动态拼接多个查询条件查询数据库rn问题描述:rn 公司开发中自己负责的模块业务需要根据用户选择内容去查询数据库,其中会计期间是必须的条件,默认为当前日期。用户只需要根据需要去输入就可以进行相关查询。不选择不拼接。rnrn直接上图上代码!!!rnrn后台打印sql为:rn拼接会计期间 : select * from jyqrsj where f_kjqj = ‘201801’rn拼接单位...
根据查询参数list动态拼接SQL
业务场景,根据查询参数List,动态拼接SQL语句。rnrnrn例如:在工具中可执行的sql如下:rnselect a0.sku_id from rn(select sku_id from wms_sku_attribute where attribute_list_id = '7')a0 inner joinrn(select sku_id from wms_sku_attribute wher
【Maven+SSM】Mybatis基础使用及动态SQL拼接根据对象查询数据
一创建一个SSM项目n二Mybatis的基础使用n三Mybatis的一些复杂运用
jdbc动态条件查询防止sql注入的解决方案
问题场景:这里的动态查询是指,select语句的某一个或多个查询条件是这种情况:不限或指定值。不限就是这个条件要去掉,指定值就是这个条件必须要。比如你会看到买房子的网站的查询选项是这样的:n地区:不限或北京、上海、…。(下拉选项)n类型:不限或二手房或新房。(下拉选项)n户型:不限或三室一厅、三室二厅、二室一厅、…。(下拉选项)n也可能还有更多的条件。分析:如果地区条件用户选不限,sql查询的whe
excel动态拼接sql语句
    需求:nn           根据Excel中的一个字段的值作为条件,把对应行中的其他字段插入。nn例子:表A根据id更新Name nn=C2&amp;amp;B2&amp;amp;D2&amp;amp;A2&amp;amp;E2   表示单元格根据值&amp;amp;来拼接nn...
mysql如何使用in查询动态拼接参数
n n n 今天再工作中需要用到拼接一个原生sql,里面有用到select * from t_order where order_no in (&quot;xx&quot;, &quot;xx&quot;, &quot;xx&quot;...) 形式的sql语句,order_no是不确定的,如何匹配拼接处期望的sql?参考地址n通过传参执行nformat_strings = &quot;,&quot;.join(['%s'] * len(orde...
动态SQL和绑定变量(转)
转自;http://zhuyuehua.iteye.com/blog/1123334rn rn rn说动态SQL之前先来说下静态SQLrn rn静态SQL语句rn rn语句中主变量的个数与数据类型在预编译时都是确定的,我们称这类嵌入式SQL语句为静态SQL语句。rn rn与之相对应的就是动态SQLrn rn动态SQL方法允许在程序运行过程中临时“组装”SQL语句。rn rn那么他们之间的区别是什么...
mysql 存储过程动态拼接sql并执行赋值
处理拼接sql时的赋值
Oracle 存储过程中执行动态合成SQL语句输出多条记录
rnCREATE OR REPLACE rnPROCEDURE ~~~~~~~~--(过程名称)rnrn(rn v_id IN NUMBER ,rn v_cid IN NUMBER ,rn cv_1 Out Sys_RefCursor --声明游标rn)rnASrn v_SQL VARCHAR2(4000);rn v_FName VARCHAR2(50);rn v_FField ...
根据条件查询动态拼接sql语句
function append_where(&$sql, $has_where) {n $sql .= $has_where ? ' AND ' : ' WHERE ';n return $sql;n}nnfunction demo($name = '', $age = '') {n $sql = "SELECT * FROM `employee`";n $has_wher
Oracle存储过程返回游标,查询语句通过动态SQL拼接的方式;
1,首先创建自定义包,其中包含游标变量的声明rnCREATE OR REPLACE package POLICE.pkg_packagernasrn    type type_cursor is ref cursor;rnend; rn2,存储过程的使用rnCREATE OR REPLACE procedure POLICE.DangXmList(lx in varchar2,begin1 dat...
Hibernate_根据条件动态组装sql/hql语句(仿ibatis动态查询语句功能)
via: http://blog.csdn.net/crazycoder2010/article/details/7414152rn rn1.功能需求背景  项目中使用hibernate作为数据持久层框架,主要考虑hibernate在进行一些简单的crud操作时非常便利,不需要和ibatis似的为每个sql操作都写一堆文件,但是同时也带来了一些局限性,如类似ibatis强大的动态查询功能用不了了,
动态拼接update sql语句
@WriteDataSourcen public void updateEquipmentAssets(String tableName,List&amp;lt;String&amp;gt; keyList,List&amp;lt;String&amp;gt; valueList){n StringBuilder sb = new StringBuilder();n sb.append(&quot;UPD...
mybatis高级版 利用动态sql片段加入 foreach 循环拼接 实现 单表批量查询、批量修改、批量删除、批量添加。
摘要nmybatis高级版 利用动态sql片段加入 foreach 循环拼接 实现 单表进行批量查询、批量修改、批量删除、批量添加。nnn第一步建表n以员工表单表为例n create table emp1(n id varchar2(20) primary key,n name varchar2(20)unique not null,n password varchar2(6) chec...
jdbc预编译与拼接sql对比
n n 在jdbc中,有三种方式执行sql,分别是使用Statement(sql拼接),PreparedStatement(预编译),还有一种CallableStatement(存储过程),在这里我就不介绍CallableStatement了,我们来看看Statement与PreparedStatement的区别。n nnnnn1. 创建数据库,数据表nn数据库名字是test,数据表的名字是...
使用jdbc连接数据库,如何使用PreParedStatement类实现in的查询
大家都知道PreParedStatement类相比Statement更加方便的实现sql语句的动态赋值问题,虽然Statement也可以采取字符串拼接的方式实现,但代码整体风格看着不舒服,PreparedStatement类由Connect接口获取,同时再sql语句中采用占位符(&quot;?&quot;)的形式,方便程序员进行数据的赋值。但由此引申一个问题,如何区域查询呢?nn大家随便看个sqlnnnselect ...
spring-data-jpa动态拼接sql语句实现动态的多表条件查询
**nspring-data-jpa 动态拼接sql语句n** spring-data-jpa对于简单的数据操作确实使用起来比较方便,但是对于一些比较复杂的动态的多表条件查询就不是那么简单了,对于需要些sql语句并且需要动态的添加条件的时候就得使用jpa的EntityManager来完成了.n以下为以返回EasyUI分页数据为例,npublic interface VideoDao exte...
ORACLE动态SQL语句
问题的提出我们经常需要运行可变化的SQL语句,这种通常称为动态SQL,在ORACLE中执行动态的SQL语句,需要了解ORACLE的动态SQL语句的相关规定。 nSQL动态语句是由程序或者存储过程生成的SQL语句,这种语句的特点是,不能简单的去运行。因为它不是标准的,其中含有变化的成分,因此ORACLE提供了一个执行动态SQL语句的模式: nEXECUTE IMMEDIATE n这句话的含义是立即执行
表名动态生成拼接到sql语句的sql注入问题
背景:根据业务需要,每个月生成一张根据年份和月份的表,然后当前的数据存到当前月份的表。nn关键代码如下:nnnnString tabName = &quot;tabsaveevent&quot; + strYear + strMonth;nnnString sqlSave = &quot;insert into &quot; + tabNamen + &quot; (id,serializeObj,methodName,createTi...
JDBC中执行静态SQL和执行动态SQL区别
1.执行静态SQLnnnn获取到的statement执行SQL语句对象 只能执行静态的sql语句:sql写死 直接运行的 拼接sqlnn加载驱动nn获取连接对象nn获取执行语句对象nn执行SQL语句(a.executeQuery(sql);//查 a.executeUpdate(sql);//增删改)nn处理结果集对象nn释放资源nnnn2.执行动态SQLnnprepareStatem...
SpringData JPA动态拼接sql语句实现动态的多表条件查询
@Autowiredn private EntityManager entityManager;nnpublic List&lt;Object[]&gt; findSignFileAndPosition(int pageNum, TbSignFile search) {n PageRequest pageRequest = new PageRequest(pageNum, 1...
MyBatis 向Sql语句中动态传参数·动态SQL拼接
在动态传递参数的时候,需要用到OGNL表达式,不懂的童鞋可以下去百度,这里制作一个简要的介绍n在向XML文件传递参数的时候,需要用到sqlSession.selectList("Message.queryMessageList",message); message就是你要传递的参数。一般来说,这个message是一个对象,因为这里只能传递一个参数,而对象可以将很多参数封装起来。nXML文件接收
iBatis 动态SQL别名查询结果为Null问题
iBatis 动态SQL别名查询结果为Null问题nn在项目中使用了iBatis,使用xml方便的维护SQL,清晰明了,偶然发现动态拼接的SQL语句在数据中执行很好的返回结果,而到了程序中总是有字段返回null值,跟在数据库中执行的结果不一致nnnn例如nnnn&amp;amp;lt;select id=&amp;quot;getUser&amp;quot; parameterClass=&amp;quot;SearchModel&amp;quot; resultClass=&amp;quot;Use...
oracle存储过程,动态sql
nCREATE OR REPLACE PROCEDURE &quot;TUBEMNG&quot;.&quot;RE&quot; (one OUT INTEGER,two OUT INTEGER,three OUT INTEGER,four OUT INTEGER,ptype IN VARCHAR2,DRAWNO IN VARCHAR2,MSIZE IN VARCHAR2) ASnTYPE name_num_rc IS RE...
mybatis中怎么使用like形成动态模糊查询,错误使用CONCAT拼接sql的看过来
这个问题曾经困扰了我很长时间,因为我需要动态参数的模糊查询,上网找了很多,都说用CONCAT但我用ORACLE的时候发现并不能满足我的需求。nnn今天就说一下,我是怎么解决这个问题的。nnn其实我当时为了拼sql一经头昏脑胀了,但是你想想看,为什么一定要在sql中拼凑sql呢?nnnn直接连‘%value%’当作一个整体传参,你想到了吗?让你远离拼接sql实现更强大的功能。nn但一定要注意判断在...
如何用SQL来写动态SQL,本文主要是HiveQL
SQL语句静态变为静态,字符串拼接,concat函数,Hive环境,HiveQL
(13)多条件查询(精确查询、模糊查询):动态拼接sql
这是在学生信息管理系统中遇到的,因为当时还没有学hibernate,所以访问数据库还是用JDBC。 n需求:在查询用户信息时,可以指定如下查询条件,按照用户编号精确查询;按照姓名模糊查询(输入李可以查到所有姓李的用户);按照性别查询;按照年龄范围查询。 nso查询页面如下: n n按照上面的组合查询条件,这个对象,应该有一个编号(精确查询),一个姓名(模糊查询),一个性别(模糊查询),两个年龄(模糊
sql语句里有中文字符,JDBC查询不出来结果
sql语句里有中文字符,JDBC查询不出来结果,将连接的url加入useUnicode=true&characterEncoding=UTF-8,如rnrnrn(jdbc:mysql://localhost:3306/system?useUnicode=true&characterEncoding=UTF-8)。rnrnrn这样,sql语句可以将中文正确编码,查询出结果。
Oracle实现动态SQL的拼装要领
rn虽说Oracle的动态SQL语句使用起来确实很方便,但是其拼装过程却太麻烦。尤其在拼装语句中涉及到date类型字段时,拼装时要加to_char先转换成字符,到了sql中又要使用to_date转成date类型和原字段再比较。rn例如有这样一个SQL语句:rnandrn(t.created>=to_date('2012-11-08','yyyy-mm-dd')rnAND t.created'2
Spring Boot Jpa之构建动态SQL查询语句
Spring Boot Jpa之构建动态SQL查询语句概念 创建使用Java Persistence API的存储库是一个繁琐的过程,需要大量时间并需要大量样板代码。一种推荐的方式是使用元1.JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。,而Hibernate是它的一种实现。除...
MyBatis 实践 -动态SQL/关联查询
MyBatis 实践标签: Java与存储动态SQL动态SQL提供了对SQL语句的灵活操作,通过表达式进行判断,对SQL进行拼接/组装.if对查询条件进行判断,如果输入参数不为空才进行查询条件的拼接.nmappern<select id="selectUser" resultType="com.fq.domain.User" parameterType="com.fq.domain.User">
JMeter 测试中,使用 JDBC 查询中文内容无结果的解决办法
n n n 在使用 JMeter 进行 JDBC 查询数据库时,sql 语句使用英文和数字可以查询到记录,而使用中文则查询不到记录,而且使用相同的中文语句,可以在终端命令上和数据库管理工具上也可以查询到。n原因n以上问题是因为数据库使用的编码与jmeter 查询时,使用的编码不一致,导致查询的条件转换后不一致,导致查询不到正确记录或查询到错误记录。nJMeter 的默...
java连接数据库和执行静态和动态的sql语句
►JDBC (Java DatabaseConnectivity) 是用于执行SQL 语句的Java 应用程序接口,由一组用Java 语言编写的类和接口组成。rn►JDBC 是一种规范,各数据库厂商为Java 程序员提供标准的数据库访问类和接口,使得独立于DBMS 的Java 应用程序的开发工具和产品成为可能。rn►其官方网站为:http://java.sun.com/products/jdbc/
Mybatis动态拼接sql
Mybatis动态拼接sql n需求:查询某张表时条件不确定,可能有一个,可能有多个,也可能没有条件<!-- 动态sql -->n<select id="fingUserList" parameterType="com.hl.myabtis.first.beas.UserQueryVo" resultType="com.hl.myabtis.first.beas.UserCustomer">
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java课程设计jdbc java的jdbc 学习