大神们求救!SQL语句在数据库中可查询,在java中如何接收查询集合并输出控制台

Axuduo 2017-07-16 11:01:12
各位求救!我需要从数据库中根据日期时间进行分组查询,查询语句在Oracle数据库中可行;
语句如下:
select to_char(MAKETIME,'yyyy-mm-dd'),"COUNT"(MAKETIME) from TB_PRODUCT_ORTHO WHERE STATUS_WATER = 0
group by to_char(MAKETIME,'yyyy-mm-dd')order by to_char(MAKETIME,'yyyy-mm-dd')


在Mybatis的mapping编写如下:
<select id="dayCount3" resultType="map" parameterType="double">
select to_char(MAKETIME,'yyyy-mm-dd hh:mm:ss'),"COUNT"(MAKETIME) from TB_PRODUCT_ORTHO WHERE STA
TUS_WATER = 0 group by to_char(MAKETIME,'yyyy-mm-dd hh:mm:ss')order by to_char(MAKETIME,'yyyy-mm-dd hh:mm:ss')
</select>

测试类编写如下:
Map<Double, Double> map = new HashMap<Double, Double>();
map = product_OrthoDayDao.dayCount0();
for (Map.Entry<Double, Double> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
然而结果并没有出现数据列表:
[org.mybatis.spring.transaction.SpringManagedTransaction] - JDBC Connection [jdbc:oracle:thin:@127.0.0.1:1521:orac, UserName=WATER, Oracle JDBC driver] will not be managed by Spring
[com.iwhr.water.dao.Product_OrthoDayDao.dayCount0] - ==> Preparing: select to_char(MAKETIME,'yyyy-mm-dd hh:mm:ss'),"COUNT"(MAKETIME) from TB_PRODUCT_ORTHO WHERE STATUS_WATER = 0 group by to_char(MAKETIME,'yyyy-mm-dd hh:mm:ss')order by to_char(MAKETIME,'yyyy-mm-dd hh:mm:ss')
[com.iwhr.water.dao.Product_OrthoDayDao.dayCount0] - ==> Parameters:
[com.iwhr.water.dao.Product_OrthoDayDao.dayCount0] - <== Total: 211
[org.mybatis.spring.SqlSessionUtils] - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@73ff4fae]
[org.springframework.jdbc.datasource.DataSourceUtils] - Returning JDBC Connection to DataSource

求救啊!!!
...全文
876 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyankaipoi 2017-07-19
  • 打赏
  • 举报
回复
这个我页看不懂啊
刘温柔_ 2017-07-17
  • 打赏
  • 举报
回复
先把你在mapp里写的查询语句拿到数据库去执行看看能查到数吗、还有这个明显报错了、你要抓住重点看报的啥错、
qq_39205291 2017-07-17
  • 打赏
  • 举报
回复
sql怎么会返回map集合?看下你的带返回值得方法
dzhengt 2017-07-17
  • 打赏
  • 举报
回复
最简单的,你把打印出来的SQL,拉到数据库中执行不就行了,报错就出来了。
Axuduo 2017-07-17
  • 打赏
  • 举报
回复
嗯呢,我按照大神指导做了定义,结果出来了。没有问题。谢谢谢谢! 就是我还有个问题想学习一下,通常从数据库中查询出来的列表除了用List的情况下,什么时候用Map呢?在使用Map的过程中resultType这个地方也是用您说的“全限定名”么?
k10509806 2017-07-17
  • 打赏
  • 举报
回复
错误信息都没发出来,叫人如何定位呢
自由自在_Yu 2017-07-17
  • 打赏
  • 举报
回复
截图左侧的报错信息贴出来呀
www924340132 2017-07-17
  • 打赏
  • 举报
回复
引用 12 楼 pany1209 的回复:
[quote=引用 8 楼 qq_26457319 的回复:] [quote=引用 1 楼 pany1209 的回复:] 报什么错?sql都打印出来了,接受数据的时候报错吧???
可能是参数接受的时候报错了,我是小白,麻烦指导一下怎么改 接口定义如下:public Map<Double, Double> dayCount0(); mapping定义如下:<select id="dayCount0" resultType="map" parameterType="double">[/quote] 写个javaBean定义你select的两个值,resultType="全限定名",方法返回值List<这个JavaBean>[/quote] 说的对
李德胜1995 2017-07-17
  • 打赏
  • 举报
回复
引用 8 楼 qq_26457319 的回复:
[quote=引用 1 楼 pany1209 的回复:] 报什么错?sql都打印出来了,接受数据的时候报错吧???
可能是参数接受的时候报错了,我是小白,麻烦指导一下怎么改 接口定义如下:public Map<Double, Double> dayCount0(); mapping定义如下:<select id="dayCount0" resultType="map" parameterType="double">[/quote] 写个javaBean定义你select的两个值,resultType="全限定名",方法返回值List<这个JavaBean>
Axuduo 2017-07-17
  • 打赏
  • 举报
回复
额,我这个查询出来是每天有多少数据,要做一个统计,所以我用了map做接受,那麻烦指导一下我需要怎样修改接口接受参数,才能把查询的结果给代码遍历呢?
Abin0406 2017-07-17
  • 打赏
  • 举报
回复
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 211 期望获取一个结果或null,实时上SQL获取到211个结果,是不是JUNIT断言设置不合理 select to_char(MAKETIME,'yyyy-mm-dd'),"COUNT"(MAKETIME) from TB_PRODUCT_ORTHO WHERE STATUS_WATER = 0 group by to_char(MAKETIME,'yyyy-mm-dd')order by to_char(MAKETIME,'yyyy-mm-dd') 第一列应为String类型,不懂你为什么会用Map<Double,Double>去接受,日期字符串转Double不报错?
Axuduo 2017-07-17
  • 打赏
  • 举报
回复
可能是参数接受的时候报错了,我是小白。求救,我改将方法定义成什么才可以将数据库中查询出来的结果遍历出来呢 接口定义如下:public Map<Double, Double> dayCount0(); mapping定义如下:<select id="dayCount0" resultType="map" parameterType="double">
Axuduo 2017-07-17
  • 打赏
  • 举报
回复
引用 1 楼 pany1209 的回复:
报什么错?sql都打印出来了,接受数据的时候报错吧???
可能是参数接受的时候报错了,我是小白,麻烦指导一下怎么改 接口定义如下:public Map<Double, Double> dayCount0(); mapping定义如下:<select id="dayCount0" resultType="map" parameterType="double">
Axuduo 2017-07-17
  • 打赏
  • 举报
回复
大神们 左侧错误提示信息如下: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 211 at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371) at com.sun.proxy.$Proxy13.selectOne(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:163) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:68) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52) at com.sun.proxy.$Proxy15.dayCount0(Unknown Source) at com.iwhr.water.test.DaoTest.productDayTest(DaoTest.java:41) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:73) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:73) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:224) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) Caused by: org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 211 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358) ... 35 more
李德胜1995 2017-07-16
  • 打赏
  • 举报
回复
报什么错?sql都打印出来了,接受数据的时候报错吧???

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧