- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Java 中的 NamedParameterJdbcTemplate 运行一个简单的 mysql 查询。
问题是我的 java 查询正在为 count 字段返回二进制值,即 1 代表所有非零值 和 0 代表所有零值 。当我直接在 mysql 服务器上运行 jdbc 发送到 mysql 的相同查询时,我得到了正确的答案。
详情如下:
这里是查询:
SELECT CAST(COUNT(DISTINCT :fieldName) AS UNSIGNED) count, user_id userId FROM "+ tableName + " WHERE user_id IN (:userIdList) GROUP BY userId
执行查询的 java LOC:
NamedParameterJdbcTemplate namedJdbcTemplate = new NamedParameterJdbcTemplate(getJdbcTemplate().getDataSource());
List<CountRow> countRows = namedJdbcTemplate.query(query,parameters,new CountRowMapper());
countRow 类是:
public class CountRow {
private int count;
private String userId;
public CountRow() {
super();
// TODO Auto-generated constructor stub
}
public void setUserId(String userId) {
this.userId = userId;
}
public void setCount(int count) {
this.count = count;
}
public int getCount() {
return count;
}
public String getUserId() {
return userId;
}
我正在查询的列的详细信息:
`user_id` varchar(30) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
`fieldName` varchar(15) DEFAULT NULL,
ENGINE=MyISAM DEFAULT CHARSET=latin1
最后,我的jdbc连接url是:
jdbc:mysql://127.0.0.1/mydb?zeroDateTimeBehavior=convertToNull&useSSL=false&autoReconnect=true&useUnicode=yes&characterEncoding=UTF8&characterSetResults=UTF8
我完全不知道为什么会这样。如果有人能阐明这一点,那就太好了。
谢谢
最佳答案
我认为您不能以这种方式使用参数 :fieldName
。尝试像使用 tablename
"SELECT COUNT(DISTINCT " + fieldName + ") count, user_id userId
FROM "+ tableName + " WHERE user_id IN (:userIdList) GROUP BY userId
希望对你有帮助
关于java - NamedParameterJdbcTemplate 查询方法返回错误的整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47471763/
我们使用的是 Spring 2.6,我们在系统中使用 jdbcTemplate 和 NamedparameterJdbcTemplate,配置如下。 j
我编写了一个方法来使用 NamedParameterJdbcTemplate 检索条目列表: public final Map findAll(final Collection keys) {
我正在尝试在我的 springs 应用程序中查询 sql。现在,如果我的代码包含类似的内容 - String sql="select abc,def from alphabets where char
我正在使用 Java 中的 NamedParameterJdbcTemplate 运行一个简单的 mysql 查询。 问题是我的 java 查询正在为 count 字段返回二进制值,即 1 代表所有非
我正在处理一个问题,该问题涉及编写一个查询以从数据库中获取几千条记录。我将使用的查询将在 WHERE 条件中包含 2 个 IN 子句。 据我所知,这可能是有限的,请纠正我,对于这个用例,我不能使用 j
我正在使用超酷的 jdbcTemplate(更具体地说是 NamedParameterJdbcTemplate)来运行带有 IN 子句的查询。然而,我希望查询的列表是一个枚举,因此我收到错误:“转换中
我是 Spring 新手,正在尝试编写一个使用 NamedParameterJdbcTemplate 的简单测试方法。这是: public String test() { String que
是否有办法利用 NamedParameterJdbcTemplate 而不是使用 SpringJdbcMigration 实现中的标准 JdbcTemplate 创建飞路迁移类? 我需要运行一个升级,
有没有办法设置 Spring 的 NamedParameterJdbcTemplate 对象的批量大小? 我在我的项目中遇到了一些 OutOfMemory 问题,但我能够通过在较小块的循环中调用 Na
在 Spring 的 NamedParameterJdbcTemplate 中。我如何使用 Spring 3.1.x 版查询执行“Select * from Student”以返回列表而不提供任何参数
我正在开发一个需要对 Oracle 数据库进行 JDBC 调用的项目。我已经设置了 UCP 池来与 SpringJDBC 一起使用。我有一个相当简单的查询,我正在执行如下... 从表中选择 *,其中
我想更改 NamedParameterJdbcTemplate 的结果集行为。 (禁用结果集缓存) 例如,使用 postgres jdbc 驱动程序,您可以像这样更改它: conn =
有没有办法从NamedParameterJdbcTemplate返回Optional? 我的查询有时会返回空。所以我想要一种漂亮的方法来检查是否为空。我不想对 EmptyResultDataAcces
我的代码是这样的: NamedParameterJdbcTemplate stmt; String sql = "INSERT INTO ....."; // named = ...; ... st
我正在尝试使用带有 NamedParameterJdbcTemplate 的映射参数调用存储过程(Spring 3.0),但由于某些奇怪的原因,某些值没有传递给存储过程(Oracle 11.2)! 相
在 Spring 的引用文档中,类型“NamedParameterTemplate”被引用为进行批量更新的简单方法: http://docs.spring.io/spring/docs/current
我在 Spring 中使用 NamedParameterJDBCTemplate 并尝试仅选择少数列而不是所有列。但我面临一个错误 - org.SpringFramework.BadSqlGramma
尝试更新表中的多个列值。 我缺少什么,一点帮助! dao 方法就像... dao 类 Plan 的所有字段都填充了适当的数据。 public void updatePlan(Plan plan) {
我正在使用 Spring 框架。使用 NamedParameterJdbcTemplate 时如何设置查询超时?我注意到 JdbcTemplate 有一个 setQueryTimeout(int qu
我在 TomCat 服务器上部署了一个 Spring MVC 项目,但我一直遇到与数据库的连接问题。几个小时后,当用户尝试登录时,他们将遇到 500 错误和此消息: HTTP Status 500 -
我是一名优秀的程序员,十分优秀!