1. 程式人生 > 其它 >3.mybatis的CRUD

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>