`
chembo
  • 浏览: 938822 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

getJdbcTemplate().queryForMap 返回空集

阅读更多
利用spring 的getJdbcTemplate().queryForMap如果返回空集,就会报
org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 的异常,解决办法就是捕捉这个异常然后返回null即可。
try{
			return getJdbcTemplate().queryForMap("select s.fb,s.pb,s.tu,s.qt,s.fbc,s.pbc,s.tt,s.ft,s.lt from gbc$view_user s where s.ud = ? and ad= ?", new Object[]{ud,ad});
		}catch (EmptyResultDataAccessException e) {
			return null;
		}
分享到:
评论
2 楼 liuzhifeixff 2014-09-23  

public Map<String, Object> queryForMap(String sql, Object... args){
		List<Map<String, Object>> results = 
				getJdbcTemplate().query(sql, args, 
						new RowMapperResultSetExtractor<Map<String, Object>>(new ColumnMapRowMapper(), 1));
		return DataAccessUtils.uniqueResult(results);
	}



可以这样解决. 可以少抛异常.  跳过封装部分,直接底层调用.
1 楼 hmltqxz 2012-06-15  
刚好解决了我的问题,就是这样

相关推荐

    基于SpringJDBC的BaseDAO

    - 使用`getJdbcTemplate().queryForList(sql)`执行查询操作并返回结果。 3. **更新记录(update)** - **方法定义**:`public boolean update(String sql, Object args)` - **作用**:执行更新操作,如果成功则...

    jdbcTemplate

    List&lt;User&gt; userList = getJdbcTemplate().query(sql, new BeanPropertyRowMapper(User.class), primaryKeyId); if(userList.size() == 0) { return null; } return userList.get(0); } @Override public ...

    jdbc保存对象返回一个主键

    jdbcHandler.getJdbcTemplate().update(new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { PreparedStatement ps = con....

    jdbcTemplate使用方法实例解析

    jdbcTemplate.queryForMap("select * from test where name='name5'"); // 3. 查询一行任何类型的数据,最后一个参数指定返回结果类型 jdbcTemplate.queryForObject("select count(*) from test", Integer.class); ...

    _Spring_使用 JdbcTemplate和JdbcDaoSupport.rar

    它提供了一个便捷的方法`getJdbcTemplate()`,通过这个方法,子类可以获取到`JdbcTemplate`实例,从而进行数据库操作。`JdbcDaoSupport`的作用在于解耦了DAO实现与`JdbcTemplate`的创建,使得DAO实现更加专注于业务...

    数据源配置和数据库操作.doc

    getJdbcTemplate().execute("insert into person(name, password) values('aaaa', '*****')"); // 使用JdbcTemplate的update方法执行参数化的SQL语句 getJdbcTemplate().update("insert into person(name, ...

    牧紫小岩的Spring学习笔记pdf

    if (super.getJdbcTemplate().update(sql, obj.getTitle(), obj.getContent(), obj.getPubTime(), obj.getType(), obj.getImg(), obj.getId()) &gt; 0) { return true; } return false; } // 删除新闻 public ...

    Spring JDBC的使用方法详解

    super.getJdbcTemplate().update("insert into user(id,username,password,date,salary) values(null,?,?,?,?)", user.getUsername(),user.getPassword(),user.getDate(),user.getSalary()); } // ... } ``` 第...

    Jdbcsupport培训 详细讲解jdbcsupport

    以JdbcDaoSupport为例,它提供了一个getJdbcTemplate()方法,返回一个JdbcTemplate实例。JdbcTemplate是Spring提供的一个强大且灵活的JDBC工具,它包含了许多预定义的数据库操作方法,如update()、query()等,用于...

    存储过程.docx

    Object obj = getJdbcTemplate().execute(sql, new CallableStatementCallback() { public Object doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException { cs.setInt(1, ...

    4.Spring中的JdbcTemplate,Spring中的的事务,

    ##### 返回一行一列的结果 ```java Integer count = jdbcTemplate.queryForObject("SELECT COUNT(*) FROM account", Integer.class); ``` #### 在DAO中使用JdbcTemplate 在DAO层使用JdbcTemplate可以有两种方式:...

    spring的JdbcDaoSupport的一些用法示例

    首先,`JdbcDaoSupport`的核心在于它提供了一个`getJdbcTemplate()`方法,该方法返回一个`JdbcTemplate`实例。`JdbcTemplate`是Spring JDBC模块中的核心组件,它提供了一套用于执行SQL语句的模板方法,使得代码更加...

    Spring JdbcTemplate api

    除了上述方法,`JdbcTemplate`还提供了一系列`queryForXXX`方法,用于快速返回简单的查询结果,例如查询计数或返回单个字段的值。这些方法简化了常见查询场景的编码工作,提高了开发效率。 总之,`JdbcTemplate`...

    Spring JdbcDaoSupport 批量插入数据

    `BatchPreparedStatementSetter`是一个接口,我们需要实现它的`setValues(PreparedStatement ps, int i)`方法,根据索引填充预编译的SQL语句,然后在`getBatchSize()`方法中返回批次大小。 下面是一个使用`...

    DB_Connection_Factory.rar_DB factory桥连接_factory

    4. **关闭资源**:尽管DB Connection Factory会管理连接,但在使用完数据库连接后,仍建议显式调用`Connection.close()`,将连接返回给连接池,以便其他请求复用。 下面是一个简单的Java示例,展示了如何使用...

    JdbcTemplateTool.zip

    基于以上的一些不足之处,我建立了 JdbcTemplateTool 它有以下特性:把查询结果转换为PO列表,不需要调用BeanPropertyRowMapper传一条统计sql比如 aselect count(1) from table可以直接返回一个数字作为结果,不需要...

    durid数据库连接池的使用方式,定义了工具类,可以通过durid方式访问数据库,实现对数据库的添加

    通过`getJdbcTemplate()`方法,可以获取到一个`JdbcTemplate`对象,从而方便地进行数据库的增删改查操作。例如,实现对数据库的添加操作: ```java public void addUser(User user) { String sql = "INSERT INTO ...

    编写通用Dao

    `save`方法用于保存新实体到数据库,`update`用于更新已有实体,`deleteById`根据ID删除实体,`findById`通过ID查询实体,而`findAll`则返回所有实体的列表。 接下来,我们需要实现这个接口。实现通常会依赖于JDBC...

    JdbcDaoSupport类的使用

    这样,你就可以在实现类中通过`getJdbcTemplate()`方法获取到预配置的`JdbcTemplate`实例。`JdbcTemplate`是Spring JDBC的核心,它提供了大量的模板方法,用于执行SQL查询、更新等操作,同时处理了诸如异常转换、...

    HibernateDaoSupport与JdbcDaoSupport

    int n = this.getJdbcTemplate().queryForInt("select max(userid) from User"); System.out.println(n); } public static void main(String[] args) { ApplicationContext ctx = new ...

Global site tag (gtag.js) - Google Analytics