mybatis數據庫增刪改查操作

一、查詢列表操作
在前面一篇文章中我們講到了使用接口的方式編程,並實現了一個簡單的查詢操作,當只需要查詢一條指定記錄時,使用該方式查詢就可以。此處,只講解關於mybatis查詢一個列表時的操作,此時數據庫中的數據:
這裏寫圖片描述
首先,在UserMapper接口中添加queryUserList方法

public List<User> queryUserList(String name)

在User.xml配置文件中定義一個resultMap標籤,在select標籤中引入:

<resultMap type="User" id="userResultMap">
        <id column="id" property="id"/>
        <!-- 當數據庫列名和對象屬性值相同時,不指定屬性映射關係也是可以的 -->
        <result column="name" property="name"/>
        <result column="sex" property="sex"/>
        <result column="address" property="address"/></resultMap>
    <!-- 注意:select標籤中不存在 resultType而是用resultMap,resultMap值與resultMap標籤的id值相匹配-->
    <select id="queryUserList" parameterType="string" resultMap="userResultMap">
        select * from t_user where name like #{name}
    </select>

測試代碼:

public void testQueryList(){
        SqlSession session = sqlSessionFactory.openSession();

        try {
            UserMapper userMapper = session.getMapper(UserMapper.class);

            List<User> userList = userMapper.queryUserList("%小%");
            for (User user : userList) {
                System.out.println(user);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(session != null){
                session.close();
            }
        }
    }

執行結果:
這裏寫圖片描述

二、添加操作

在UserMapper接口中添加方法:

public void addUser(User user);

在User.xml文件中配置:

<insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
        insert into t_user(name,sex,address) values(#{name},#{sex},#{address})
</insert>

注:id和parameterType分別對應的是UserMapper中addUser(User user)的方法名和參數類型。以#{name}的形式引用User參數中的name屬性,mabatis通過反射機制讀取User的name屬性,#{name}中name大小寫敏感。
useGeneratedKeys設置 爲”true”表明要MyBatis獲取由數據庫自動生成的主鍵;keyProperty=”id”指定把獲取到的主鍵值注入到Student的id屬性。

測試代碼:

public void testAdd(){
        SqlSession session = sqlSessionFactory.openSession();

        try {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            User user = new User();
            user.setName("小強");
            user.setSex('男');
            user.setAddress("四川德陽");

            userMapper.addUser(user);

            session.commit();
            System.out.println(user);
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(session!=null){
                session.close();
            }
        }
    }

執行結果:
這裏寫圖片描述
數據庫數據:
這裏寫圖片描述
注:在執行保存操作後需要提交事務,否則數據將不會保存到數據庫。由執行結果可以看出,在執行保存操作後輸出user對象,得到了保存到數據庫後該條數據的id。

三、更新操作
在UserMapper接口中添加方法:

public void updateUser(User user);

配置User.xml文件:

<update id="updateUser" parameterType="User">
        update t_user set name=#{name},sex=#{sex},address=#{address} where id=#{id}
</update>

測試代碼:

public void testUpdate(){
        SqlSession session = sqlSessionFactory.openSession();

        try {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            User user = userMapper.selectUserById(4);
            user.setAddress("四川綿陽");

            userMapper.updateUser(user);
            session.commit();

        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(session!=null){
                session.close();
            }
        }
    }

運行結果(數據庫中小強的address屬性原本是四川德陽):
這裏寫圖片描述

四、刪除操作
在UserMapper接口中添加方法:

public void deleteUser(int id);

配置User.xml文件:

<delete id="deleteUser" parameterType="int">
     delete from t_user where id=#{id}
</delete>

測試代碼:

public void testDelete(){
        SqlSession session = sqlSessionFactory.openSession();

        try {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            userMapper.deleteUser(4);

            session.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(session!=null){
                session.close();
            }
        }
    }

執行結果(id爲4的小強的數據被刪除,數據庫只剩兩條數據):
這裏寫圖片描述

至此,mybatis實現對數據庫簡單的增刪改查操作就算完成了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章