关于mybatis不执行sql的问题

问题描述

关于mybatis不执行sql的问题

select
TOM_ID
from
TEST
where 1=1

AND HOST_IP = #{ipAddr}

日志输出:
11:04:02.942 [http-bio-8080-exec-5] DEBUG org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession
11:04:02.942 [http-bio-8080-exec-5] DEBUG org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7ecc30a4] was not registered for synchronization because synchronization is not active
11:04:02.942 [http-bio-8080-exec-5] DEBUG org.mybatis.spring.SqlSessionUtils - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7ecc30a4]

这个查询没有返回,也没有报错,执行到这里程序就不走了, 其他查询是可以成功的,也可以打印出sql语句,但是这个查询就是不行。。

解决方案

select
TOM_ID
from
TOM_SERVER_CFG
where 1=1

AND HOST_IP = #{ipAddr}

这是映射的配置

解决方案二:

myBatis的SQL注入问题
myBatis的SQL注入问题
MyBatis直接执行SQL的工具SqlMapper

解决方案三:

because synchronization is not active
这个又不是因为SQL错了

解决方案四:

日志就打印这三句 , 所以不知道哪里错了 其他的都有配置

 <configuration>
    <mappers>
         <mapper resource="com/asiainfo/cmserver/intf/map/A.xml" />
    </mappers>
</configuration>
 <bean id="aDAO" class="org.mybatis.spring.mapper.MapperFactoryBean">
    <property name="mapperInterface" value=".com.ddd.aDAO" />
    <property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
时间: 2024-12-23 07:18:12

关于mybatis不执行sql的问题的相关文章

MyBatis直接执行SQL的工具SqlMapper

可能有些人也有过类似需求,一般都会选择使用其他的方式如Spring-JDBC等方式解决. 能否通过MyBatis实现这样的功能呢? 为了让通用Mapper更彻底的支持多表操作以及更灵活的操作,在2.2.0版本增加了一个可以直接执行SQL的新类SqlMapper. 通过这篇博客,我们来了解一下SqlMapper. SqlMapper提供的方法 SqlMapper提供了以下这些公共方法: Map<String,Object> selectOne(String sql) Map<String,

详解MyBatis直接执行SQL查询及数据批量插入_java

一.直接执行SQL查询: 1.mappers文件节选 <resultMap id="AcModelResultMap" type="com.izumi.InstanceModel"> <result column="instanceid" property="instanceID" jdbcType="VARCHAR" /> <result column="insta

mybatis 不执行sql,什么指教请

问题描述 mybatis 不执行sql,什么指教请 <select id="queryTomId" parameterType="java.lang.String" resultType="java.lang.String"> select TOM_ID from TOM_SERVER_CFG where 1=1 <if test="ipAddr!= null and ipAddr!= ''"> AND

(mybatis)直接执行sql结果为空,但是session.selectList出的list结果中包含了一个属性为null的bean对象

问题描述 解决方案 解决方案二:你究竟想说什么啊??没查询到数据返回一个空的集合不正常吗??解决方案三:list的size是多少,如果大于0那就可以去探讨一下,如果是0...呵呵

Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql

Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql 在自己的dao类中继承SqlSessionDaoSupport类 /** * @author herman.xiong * @since 0.1 * @param <T>实体类 * @param <PK>主键类,必须实现Serializable接口 */ package com.dao; import java.io.Serializable; import org.apache.log4j.Logg

使用Mybatis执行sql时如何统一校验输入参数?

问题描述 如dao方法有:void batchInsert(List<User> userList);List<User> getUsersByIds(List<Long> idList);void deleteUsersByids(List<Long> idList);我想若输入参数为空(list.isEmpty()),就不要往下执行sql了,直接返回.否则的话会有错误sql出现,如:mysql> select * from user where i

mybatis中动态sql常用的标签

用来循环容器的标签forEach,查看例子 //mapper中我们要为这个方法传递的是一个容器,将容器中的元素一个一个的 //拼接到xml的方法中就要使用这个forEach这个标签了 public List<Entity> queryById(List<String> userids); //对应的xml中如下 <select id="queryById" resultMap="BaseReslutMap" > select *

Mybatis解析动态sql原理分析

1.MyBatis一般使用步骤 1.1获取Configuration实例或编写配置文件 //获取Configuration实例的样例 TransactionFactory transactionFactory = new JdbcTransactionFactory();//定义事务工厂 Environment environment = new Environment("development", transactionFactory, dataSource); Configurat

MyBatis使用动态SQL标签的小陷阱_java

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 现在MyBatis越来越受大家的喜爱了,它的优势大家都知道,我就不多说了,直接说重点. MyBatis中提供动态SQL功能,我们可以使用<if><when&