我正在编写一份报告以获取mysql数据库的结果。该查询在mysql数据库中有一个int类型的参数。我定义了一个java.lang.Integer类型的参数,但是当我运行报告并给它一个值时,它不会返回任何数据。我试图将参数类型更改为String,然后我得到了不正确的结果。这是报告查询:
SELECT
orders.`number` AS orders_number,
orders.`length` AS orders_length,
orders.`thick` AS orders_thick,
orders.`date` AS orders_date,
orders.`weight` AS orders_weight
FROM
`orders` orders
WHERE
orders.`customer_id` = $P{cust_id}
这是订单表架构:
CREATE TABLE `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`customer_id` int(11) DEFAULT NULL,
`number` double DEFAULT NULL,
`length` double DEFAULT NULL,
`thick` int(11) DEFAULT NULL,
`weight` double DEFAULT NULL,
`date` date DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `customer_fk` (`customer_id`)
) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8$
谢谢,
答案 0 :(得分:0)
尝试切换$P{}
的{{1}}语法。如,
$P!{}
Jasper通常将查询转换为java PreparedStatement对象,然后使用对象的方法设置参数。在将查询转换为对象之前,WHERE
orders.`customer_id` = $P!{cust_id}
语法将执行参数替换。