批量增加操作步驟
1. 在接口UserMapper中添加批量增加方法。
- /**
- * 批量增加操作
- * @param users
- */
- public void batchInsertUsers(List<User> users);
2.在User.xml中添加批量增加操作的配置。
- <!-- 批量增加操作 -->
- <insert id="batchInsertUsers" parameterType="java.util.List">
- insert into mhc_user(userName,password) values
- <foreach collection="list" item="item" index="index" separator=",">
- (#{item.userName},#{item.password})
- </foreach>
- </insert>
由於批量增加的方法中參數爲List,所以parameterType的值爲java.util.List。
3. 創建批量操作的工具類BatchDataUtils,編寫批量增加方法。
- /**
- * 批量增加操作
- * @param users
- */
- public static void batchInsertUsers(List<User> users){
- SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
- SqlSession session = ssf.openSession();
- try {
- UserMapper userMapper = session.getMapper(UserMapper.class);
- userMapper.batchInsertUsers(users);
- session.commit();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- MyBatisUtil.closeSession(session);
- }
- }
批量刪除操作步驟
1. 在接口UserMapper中添加刪除增加方法。
- /**
- * 批量刪除操作
- * @param ids
- */
- public void batchDeleteUsers(List ids);
2.在User.xml中添加批量增加操作的配置。
- <!-- 批量刪除操作 -->
- <delete id="batchDeleteUsers" parameterType="java.util.List">
- delete from mhc_user where id in
- <foreach collection="list" index="index" item="item" open="(" close=")" separator=",">
- #{item}
- </foreach>
- </delete>
由於批量刪除的方法中參數爲List,所以parameterType的值爲java.util.List。
3. 在批量操作的工具類BatchDataUtils中編寫批量刪除方法。
- /**
- * 批量刪除操作
- * @param ids
- */
- public static void batchDeleteUsers(List ids){
- SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
- SqlSession session = ssf.openSession();
- try {
- UserMapper userMapper = session.getMapper(UserMapper.class);
- userMapper.batchDeleteUsers(ids);
- session.commit();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- MyBatisUtil.closeSession(session);
- }
- }
批量查詢操作步驟
1. 在接口UserMapper中添加批量查詢方法。
- /**
- * 批量查詢操作
- * @param ids
- * @return
- */
- public List<User> batchSelectUsers(List ids);
2.在User.xml中添加批量查詢操作的配置。
- <!-- 批量查詢操作 -->
- <select id="batchSelectUsers" resultType="User">
- select *
- from mhc_user where id in
- <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
- #{item}
- </foreach>
- </select>
由於批量查詢的方法的返回爲List<User>,所以resultType的值爲User,即com.mahaochen.mybatis.domain.User。詳見configuration.xml中。
- <typeAliases>
- <!-- 註冊實體Bean -->
- <typeAlias type="com.mahaochen.mybatis.domain.User" alias="User"/>
- </typeAliases>
3. 創建批量操作的工具類BatchDataUtils,編寫批量查詢方法。
- /**
- * 批量查詢操作
- * @param ids
- * @return
- */
- public static List<User> batchSelectUsers(List ids){
- SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
- SqlSession session = ssf.openSession();
- List<User> users = null;
- try {
- UserMapper userMapper = session.getMapper(UserMapper.class);
- users = userMapper.batchSelectUsers(ids);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- MyBatisUtil.closeSession(session);
- }
- return users;
- }
- }
批量更細操作步驟
1. 在接口UserMapper中添加批量增加方法。
- /**
- * 批量更新操作
- * @param ids
- */
- public void batchUpdateUsers(List users);
2.在User.xml中添加批量更新操作的配置。
- <!-- 批量更新操作 -->
- <!-- FOR MySQL mysql需要數據庫連接配置&allowMultiQueries=true
- 例如:jdbc:mysql://127.0.0.1:3306/mhc?allowMultiQueries=true -->
- <update id="batchUpdateUsers" parameterType="java.util.List">
- <foreach collection="list" item="item" index="index" open="" close="" separator=";">
- update mhc_user
- <set>
- userName = #{item.userName}, password = #{item.password}
- </set>
- where id = #{item.id}
- </foreach>
- </update>
- <!-- 【擴展知識】 FOR Oracle 有以下三種方式-->
- <!-- 方式一 -->
- <update id="batchUpdateUsers01" parameterType="java.util.List">
- <foreach collection="list" item="item" index="index" open="begin" close=";end;" separator=";" >
- update mhc_user
- <set>
- userName = #{item.userName}, password = #{item.password}
- </set>
- where id = #{item.id}
- </foreach>
- </update>
- <!-- 方式二 -->
- <update id="batchUpdateUsers02" parameterType="java.util.List">
- <foreach collection="list" item="item" index="index" open="begin" close="end;" separator="" >
- update mhc_user
- <set>
- userName = #{item.userName}, password = #{item.password}
- </set>
- where id = #{item.id};
- </foreach>
- </update>
- <!-- 方式三 -->
- <update id="batchUpdateUsers03" parameterType="java.util.List">
- begin
- <foreach collection="list" item="item" index="index" separator="" >
- update mhc_user
- <set>
- userName = #{item.userName}, password = #{item.password}
- </set>
- where id = #{item.id};
- </foreach>
- end;
- </update>
由於批量更新的方法中參數爲List,所以parameterType的值爲java.util.List。
3. 創建批量操作的工具類BatchDataUtils,編寫批量更新方法。
- /**
- * 批量更新操作
- * @param users
- */
- public static void batchUpdateUsers(List users){
- SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
- SqlSession session = ssf.openSession();
- try {
- UserMapper userMapper = session.getMapper(UserMapper.class);
- userMapper.batchUpdateUsers(users);
- session.commit();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- MyBatisUtil.closeSession(session);
- }
- }