我现在需要查询一条数据的状态,我在数据库中手动改成1,然后再代码中操作查询这条记录,
但是查询的结果一直是0,跟数据库的结果不一致,这是为什么?查询接口加了事务注解。
public List<XjBidSupplyoffer> getListBySupplynoAndbidid(Integer bidid,String supplyno)
{
Map<String, Object> map = new HashMap<String, Object>();
map.put("bidid", bidid);
map.put("supplyno", supplyno);
return this.dao.getListBySupplynoAndbidid(map);
}
<select id="getListBySupplynoAndbidid" resultMap="BaseResultMap"
parameterType="java.util.Map">
select
<include refid="Base_Column_List" />
from xj_bid_supplyoffer
where supplyno=#{supplyno,jdbcType=VARCHAR} and bidid =#{bidid,jdbcType=INTEGER}
</select>
补充一下:数据库没有链接错误,xml的sql我在navicat中执行是我想要的结果,但是在代码中执行出来的结果并不是,真实的:我想要的iseffect的值数据库是1,但是代码查询出来的一直是0
手动改的值是否提交了?你关了可视化工具重新打开看看。
还有就是会不会是mybatis存在缓存?
甚至于再极端点,你改的数据跟你mybatis连接的数据库是否是同一个
如果数据库表是你找的,对应数据也是你找的,那么你修改后是需要手动提交下的,commit。提交后,你在在可视化工具里执行查询操作,如果查询出来是修改后的,说明修改成功。然后你在用程序去跑跑看,如果程序也是对的那就没问题,如果程序还是不能出来,说明你找错表了,找错数据了。
首先第一步:先把
select
from xj_bid_supplyoffer
where supplyno=#{supplyno,jdbcType=VARCHAR} and bidid =#{bidid,jdbcType=INTEGER}
你写的这个sql放到你数据库里面去看,结果是不是你要的结果,
其次判断你是不是真的连上这个数据库了,因为项目中时常会有多数据源配置,多数据库操作,你要确保是这个数据库才可以。
最后倘若可以查出数据,你有无法判断为何原因,先清理缓存(有时候是因为缓存原因)再dubg打断点,通过你写的接口一步一步的走,看数据有没有拿到或者在哪发生了改变。