3.mybatis的CRUD

1.增
    1.1.dao层接口
        public interface UserDao {
            ...
            /*插入记录*/
            int intsertUser(User user);
            ...
        }
    1.2.绑定的mapper.xml
        <!--插入语句-->
        <insert id="intsertUser" parameterType="cn.com.wmd.pojo.User">
            //重点:方法传入的是对象,sql中根据对象的属性直接获取
            insert into public.user (id,name,pwd) values (#{id},#{name},#{pwd})
        </insert>
    此处需要讲解的一点是:如果表中的id是自增主键,即在插入语句中无需传入id值!但是我们想返回插入记录的id值应当如何做呢!
    使用useGeneratedKeys和keyProperty
    useGeneratedKeys的作用是允许 JDBC 支持自动生成主键
    keyProperty对应的是Java对象的属性名(不是数据库中的字段名)
    <insert id="insertPerson" parameterType="com.cn.springcloud.entity.Person" useGeneratedKeys="true" keyProperty="id">
        insert into mybatis.person(name, age, message) values (#{name},#{age},#{message})
    </insert>
    这样的测试结果是:
        会将插入记录的id值,封装到person对象中的id属性里,可以使用person.getId()获取该id值!
2.删
    2.1dao层接口
        public interface UserDao {
            ...
            /*删除*/
            int deleteUser(int id);
            ...
        }
    2.2绑定的mapper.xml
        <!--删除-->
        <delete id="deleteUser" parameterType="int">
            delete from public.user where id=#{id}
        </delete>

3.改
    2.1dao层接口
        public interface UserDao {
            ...
            /*更新用户信息*/
            int updateUser(User user);
            ...
        }
    2.2绑定的mapper.xml
        <!--更新-->
        <update id="updateUser" parameterType="cn.com.wmd.pojo.User">
            update public.user set  pwd=#{pwd}  where id=#{id}
        </update>
        
4.3.查
    2.1dao层接口
        public interface UserDao {
            ...
            /*多参数查询*/
            List<User> getUserList(int id,String name);
            ...
        }
    2.2绑定的mapper.xml
        <!--多参数查询-->
        <select id="getUserList" resultType="cn.com.wmd.pojo.User">
            //重点:
                1.多参数时可以用arg0(arg[下标]代表具体的那个数值,下标从0开始)
                2.多参数可以用param1(param[小标]代表具体的那个数值,下标从1开始)
            select * from public.user t where t.id = #{arg0} and t.name = #{arg1}
        </select>

4.3.1查询的第二种用法(标签)
    2.1dao层接口
        public interface UserDao {
            ...
            /*多参数查询*/
            重点1:此处用标签@Param表明入参
            List<User> getUserList(@Param("id") int id, @Param("name") String name);
            ...
        }
    2.2绑定的mapper.xml
        <!--多参数查询-->
        <select id="getUserList" resultType="cn.com.wmd.pojo.User">
            //重点2:此处就可以使用@param绑定的名称了
            select * from public.user t where t.id = #{id} and t.name = #{name}
        </select>

 

posted @ 2022-05-13 19:36  努力的达子  阅读(22)  评论(0编辑  收藏  举报