2 lcz3607 lcz3607 于 2016.03.28 20:36 提问

mybatis session.selectOne(key,value)问题

各位大神们,mybatis session.selectOne(key,value)调用xml的sql语句无返回值,怎么回事?
情况是这样的,今天领导给我一个完成的项目代码,是用spring,struts,mybatis编写的java项目,让我把里面连接的sqlserver数据库改为连接mysql,改完连接的驱动,用户名,密码之后,运行发现连接不上,数据库没问题,看完各种逻辑代码之后,发现是使用到了session.selectOne()方法时无法从数据库查询到的数据返回,不知什么原因,这问题困扰了我一整天,实在没办法,请各位有相关经验的高手指点指点,本人之前没接触过mybatis,请各位帮我解答,小弟万分感谢!!!!

4个回答

qq_30408111
qq_30408111   2016.03.28 20:40

selectOne()我大约记得这个函数好像是mybatis的查询中用到的

qq_30408111
qq_30408111 回复anjing1001: 你可以用mybatis的你想工程试试
2 年多之前 回复
lcz3607
lcz3607 就是用这个来查询的,最有可能的是配置文件出现问题,但是配置文件我有不懂,不敢乱改,也不知道怎么还!所以很迷茫,网上看了好久,也没个有用的!
2 年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.28 21:13

既然数据库连接不上,那么session.selectOne()这段代码就不可能正确执行的。运行过程中有什么异常信息么?
贴出来看看。建议找过简单的mybatis的demo,对照各个步骤检查下你的代码。主要就是数据库相关配置,sql映射配置,实体类,DAO实现类。仔细找找问题所在。

lcz3607
lcz3607 数据库没问题,sql语句我也跑过,没问题,数据库连接,我测试过,也没问题
2 年多之前 回复
lcz3607
lcz3607   2016.03.29 14:12

2016-03-29 13:55:25,699 DEBUG (Slf4jImpl.java:47) - Creating a new SqlSession
2016-03-29 13:55:25,699 DEBUG (Slf4jImpl.java:47) - Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1248d56]
2016-03-29 13:55:25,714 DEBUG (Slf4jImpl.java:47) - JDBC Connection [jdbc:mysql://127.0.0.1:3306/TDSZ_DIMS, UserName=root@localhost, MySQL-AB JDBC Driver] will be managed by Spring
2016-03-29 13:55:25,714 DEBUG (Slf4jImpl.java:47) - ooo Using Connection [jdbc:mysql://127.0.0.1:3306/TDSZ_DIMS, UserName=root@localhost, MySQL-AB JDBC Driver]
2016-03-29 13:55:25,714 DEBUG (PaginationInterceptor.java:77) - 列表查询。
2016-03-29 13:55:25,714 DEBUG (CommonsLogger.java:68) - Entering nullPropertyValue [target=[{CON_PAGE_RESULT_VALUE_KEY=login, com.opensymphony.xwork2.util.OgnlValueStack.MAP_IDENTIFIER_KEY=}, com.tydic.immanage.login.action.LoginAction@1c1576e, com.opensymphony.xwork2.DefaultTextProvider@b84fd7], property=CON_REQUEST_RUNTIME_SQL_KEY]
2016-03-29 13:55:25,714 DEBUG (Slf4jImpl.java:47) - ==> Preparing: select * from MHC_SYS_STAFF_INFO t where LOGIN_CODE = ? and PASSWORD = ? and STATE = '10A'
2016-03-29 13:55:25,714 DEBUG (Slf4jImpl.java:47) - ==> Parameters: lvcaijiang(String), e3c2e2fedd76daef3caec412a1685e1a(String)
2016-03-29 13:55:25,714 DEBUG (Slf4jImpl.java:47) - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1248d56]

yskxz1988
yskxz1988   2016.03.30 16:32

selectOne调用了selectList方法,当selectList方法返回值的size小于1 的时候,selectOne方法会返回null值,这边就会出现空指针的问题

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
搭建一个mybatis,出现session.selectOne方法错误
错误提示:org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.  Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.helloword.m...
mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程
mybatis源码解析(一)-开篇 mybatis源码解析(二)-加载过程 mybatis源码解析(三)-SqlSession.selectOne类似方法调用过程 mybatis源码解析(四)-Mapper方法调用过程 mybatis源码解析(五)-mybatis如何实现的事务控制 mybatis源码解析(六)-配合spring-tx实现事务的原理 mybatis源码解析(七)-当my...
Mybatis使用中遇到的问题-selectOne与返回值类型
Mybatis实操遇到的问题-由selectOne和返回值类型引发的一系列问题先是一个简单的错误写了一个简单的测试项目,分为两层:web层和core层,在写core层的DAO操作时候,使用了selecOne方法:此时为0.1版本代码 BaseDaoImpl.java public Object queryForObject(String sqlId, Map<String, Object> para
mybatis处理map类型不用foreach直接取指定key的value值
-
mybatis的返回形式(bo---map(key--value))
mybatis 返回一个结果集可以用resultmap(返回一个bo),可以用resultType='bean'返回一个bo,当用resultType=‘java.util.HashMap’的时候, 返回的结果集以key----value的形式组织:   SELECT t.*,FC_GET_AREANAME(t.CITY_AREA_KEY) AREA_NAME FROM TB_CUS_FI
mybatis中使用map类型参数,其中key为列名,value为列值
最近有个需求,就是使用mybatis时,向mysql中插入数据,其参数为map类型,map里面的key为列名,而key对应的value是该列对应的列值;问题是每次插入mysql中数据行的部分列,即map里面key的值每次都不固定,在用mybatis时需要通过map的key作为列名。   基础知识   对于这类问题基本思路就是用foreach标签遍历map,因此需要看看foreach的知识。
mybatis如何遍历Map的key和value
1.sql.xml <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <select id="selectOne" parameterType="java.util.HashMap" resultType="ja
Mybatis框架通用Dao中getSqlSession().selectOne()的应用
一、通用DAO中,抽象出BaseDao接口,静态的字符串方法名。 二、实际项目中的应用。 实际类的初始化构造。 三、网络搜索的知识点。
mybatis select返回值为map时,选取表字段的两列作为key,value
mybatis select返回值为map时,选取表字段的两列作为key,value一:数据格式确定在做项目时,遇见这样的需求,统计每部部门下的设备数量,因为后台需要对该数据进行二次处理,所以如果dao层返回List格式的数据则后台需要对该数据进行遍历,而如果只返回Map数据的话,则会使得后台代码简洁,并且提高程序效率。即需要返回这样的数据格式: 部门编号 数量1 数量2 数量3
Mybatis以Map返回,value存各个结果集对象,以指定的字段名作为key
数据库建表语句: CREATE TABLE `Products` ( `prod_id` char(10) COLLATE utf8_unicode_ci NOT NULL, `vend_id` char(10) COLLATE utf8_unicode_ci NOT NULL, `prod_name` char(255) COLLATE utf8_unicode_ci NOT ...