3.mybatis的CRUD
阿新 • • 發佈:2022-05-13
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>