【问题标题】:Using the < and >Symbols in xml在 xml 中使用 < 和 > 符号
【发布时间】:2012-03-02 06:23:14
【问题描述】:

我正在开发一个需要从数据库生成报告的系统。我一直在尝试查询数据库以根据添加日期和到期日期显示数据。问题是数据没有显示在报告中。 .jrxml 文件中的查询如下:

   <parameter name="dopened" class="java.lang.String"/>
   <parameter name="dended" class="java.lang.String"/>
   <queryString>
    <![CDATA[SELECT * FROM CASES WHERE date_due < $P{dended} ORDER BY case_no]]>
  </queryString>*

我已经在对应的.java文件中正确声明了参数“dopened”和“deneded”如下:

    params.put("dopened", dopen.getDate().toString());
    params.put("dended", dend.getDate().toString());

我正在使用日期选择器来选择日期。请帮助指出我可能遗漏的内容。谢谢

【问题讨论】:

  • 尝试用 &amp;#60; 替换 &amp;lt; 并去掉 CDATA 部分
  • 内部 CDATA 特殊字符的行为与普通字符串一样,因此无需使用任何&amp;gt;&amp;lt; 或任何 ascii 代码。没关系。问题可能出在其他地方。

标签: java sql xml


【解决方案1】:

你试过用&amp;gt;&amp;lt; 代替括号吗?

【讨论】:

  • 请注意,这些必须是&amp;gt;&amp;lt;(尽管有堆栈溢出编辑规则)。
  • 标签不是问题,因为我们在 标签中。问题是 sql 语句没有返回任何结果
【解决方案2】:

只是猜测:您正在使用 jasperreports 或一些类似的解决方案。

查询显示了一个带有日期比较的“where”子句,它需要一个 Date 对象。参数“dended”是一个字符串。您正在使用 dend.getDate().toString() 转换“dended”,但数据库肯定需要另一种日期格式(想想 yy/mm/dd 与 yyyy-mm-dd)。

解决方案:将参数更改为 java.util.Date 或 java.sql.Date 并省略转换。

【讨论】:

    猜你喜欢
    • 2012-01-19
    • 2012-03-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多