Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > getJdbcTemplate().queryForInt


Автор: fics 31.3.2008, 22:56
Подскажите, все же вроде правильно  smile 
Код

 public int clientFoundDb(EnterForm enterForm) {
        String sql = "select login, password from clients where login=? and password=?";

        Object[] params = new Object[] {
            enterForm.getLogin(), enterForm.getPassword()
        };

        return getJdbcTemplate().queryForInt(sql, params);
    }



Сегодня вот нашел этот метод(queryForInt) по идее для этих целей, не делать же РовМаппер а затем смотреть на размер листа



Ошибка:
Код

org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect
column count: expected 1, actual 2
    at org.springframework.jdbc.core.SingleColumnRowMapper.mapRow(SingleColumnRowMapper.java:89)
    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:92)
    at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:600)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:538)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:588)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:617)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:625)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:668)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:679)
    at org.springframework.jdbc.core.JdbcTemplate.queryForInt(JdbcTemplate.java:706)
    at Dao.ShopDao.clientFoundDb(Unknown Source)
    at shop.IdentificationManager.enterClient(Unknown Source)
    at _jsp._login__jsp._jspService(login.jsp:16)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:61)
    at com.caucho.jsp.Page.pageservice(Page.java:578)
    at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:192)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:263)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:481)
    at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:685)
    at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:607)
    at java.lang.Thread.run(Thread.java:619)

Автор: tux 31.3.2008, 23:08
Ты пытаешься выполнить метод queryForInt(), который предполагает один столбец результата, причем целочисленный, а возвращаешь в запросе два - login и password, причем, как я понимаю, это не числа.

Автор: fics 1.4.2008, 09:36
Цитата(tux @  31.3.2008,  23:08 Найти цитируемый пост)
Ты пытаешься выполнить метод queryForInt(), который предполагает один столбец результата, причем целочисленный,


Тогда вот эта конструкция, по идее, должна работать

Код

 select count(*) from clients where login = ? and password = ?





Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)