试一下14楼的方法,如果是使用bean传值的话,只要传bean就行。使用参数的话,就需要14楼的方法,不然会报错。还有就是你dao那边参数的类型和mapper那边的参数要一致。如下: /** * 查询所有班级信息 */ List<Map<String, Object>> findAllclass(@Param("begin")Integer begin,@Param("endss")Integer endss,@Param("name")String name);<select id="findAllclass" resultType="map"> SELECT c.*,m.majors_name FROM classs c,majors m WHERE c.majors_id=m.id <if test="name != null and name!= '' "> and class_name like CONCAT('%',#{name},'%')</if> ORDER BY c.majors_id LIMIT #{begin},#{endss} </select>
我是用的Map接收的数据
第二,再看看你的,as useid,查出来的useid是不是string型的,因为返回的是string型。
我把where条件去掉的时候 就是有数据的 加了后面那个条件 并且参数也传进去了 就查不到数据了
还有就是你试没试过,将sql语句写死看能出来么,直接写parent_id="400311";看有没有值,或者是它解析‘’?‘’的时候出错了。。
3.再不行,就写个拦截器,看看sql以及返回的结果就进是什么样的
防止乱码问题
1、语法有问题;
2、传的值有问题;
3、SQL有问题,根据传的值没有查到你想要的
/**
* 查询所有班级信息
*/
List<Map<String, Object>> findAllclass(@Param("begin")Integer begin,@Param("endss")Integer endss,@Param("name")String name);<select id="findAllclass" resultType="map">
SELECT c.*,m.majors_name FROM classs c,majors m WHERE c.majors_id=m.id
<if test="name != null and name!= '' "> and class_name like CONCAT('%',#{name},'%')</if>
ORDER BY c.majors_id
LIMIT #{begin},#{endss}
</select>
<id column="id" jdbcType="BIGINT" property="id" />
<result column="userid" jdbcType="INTEGER" property="userid" />
<result column="licenseid" jdbcType="INTEGER" property="licenseid" />
<result column="type" jdbcType="TINYINT" property="type" />
<result column="action" jdbcType="VARCHAR" property="action" />
<result column="datetime" jdbcType="TIMESTAMP" property="datetime" />
</resultMap>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from log
where id = #{id,jdbcType=BIGINT}
</select>
你可以参考下这样
感觉被这问题折腾的
你把xml文件的 resultType="java.lang.Map" 改成 resultType="java.lang.Long" 就可以了吧?然后结果集用List<Long> 类型来接收