错误名称:Mapper method 'com.dao.UserMapper.insert attempted to return null from a method with a primitive return type (int).

错误出现原因:使用的标签和内容不符。误将insert写为select。

表名t_user,实体类TUser,属性id、userName、password。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.dao.UserMapper" >

    <select id="checkLogin" parameterType="com.pojo.TUser" resultType="TUser" >
        select * from t_user where user_name = #{userName} and password = #{password}
    </select>

    <insert id="insert" parameterType="TUser" >-- insert不用返回值
        insert into t_user (user_name,password) values (#{userName} , #{password})
    </insert>
    

    <!--id是主键   map更灵活 能获取到就赋值,获取不到就不赋值-->
    <resultMap id="userMap" type="com.pojo.TUser">
        <id property="id" column="id"></id>
        <!--property必须是和数据库中的名字相同的java表示形式,如果是user或者username就会报错-->
        <result property="userName" column="user_name"></result>
        <result property="password" column="password"></result>
    </resultMap>

    <!--根据用户名和密码查找全部信息-->
    <!--要保证查询到的只有一条,多了会报错,所有要注意数据库中是否存在同名同密码的情况-->
    <select id="checkLogin" parameterType="com.pojo.TUser" resultMap="userMap" >
        select * from t_user where user_name = #{userName} and password = #{password}
    </select>

    <!--查询所有的数据并返回一个大表-->
    <select id="queryList" parameterType="TUser" resultMap="userMap">
    <!--因为定义了别名才能在parameterType里面直接加TUser 正经写数据库的情况下都是sql语句,被动就用java的语言   这个返回的是一个TUser类型的表,List<TUser>-->
        select * from t_user where 1 = 1
        <if test="userName != null and userName != ''"> and user_name like concat("%",#{userName},"%") </if>
    </select>

    <!--根据id查找用户-->
    <select id="queryUserById" parameterType="Integer" resultMap="userMap">
        select * from t_user where id=#{id}
    </select>

    <!--根据id修改名字和密码-->
    <update id="updateUser" parameterType="TUser">
        update t_user set user_name = #{userName} , password = #{password} where id = #{id}
    </update>

    <!--根据id删除数据-->
    <delete id="deleteUser" parameterType="Integer">
        delete from t_user where id = #{id};
    </delete>

</mapper>

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐