1. 程式人生 > 其它 >Mybatis入門(二) 使用mydatis進行增刪改操作

Mybatis入門(二) 使用mydatis進行增刪改操作

1,使用idea建立一個maven專案,匯入以下依賴,分別為資料庫依賴,mybatis依賴,單元測試,註解工具包(後兩個依賴可以不匯入)。

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.10</version>
        </dependency>

2,在資料庫中建立user表,以及建立一個對應的類(該類需要屬性私有,有無參構造,get/set方法,可使用@data註解),如下:

3,編寫mapper標籤中配置的介面。分別對應增刪改

public interface userDao {
    public int insertUser(user user);
    public void updateUser(user user);
    public void deletsUser(int id);
}

4,編寫XML配置檔案:編寫sql語句,以及配置第三步編寫的類,方法

mapper裡namespace對應是第三步的介面類,包含了三個標籤insert,update,delete,分別對應sql中增改刪,每個標籤中的id對應了這個介面的方法,

paramterType為傳入引數,可以傳入一個具體類,sql語句中使用#{}來代替展位符,#{id}對應了user類中id屬性!刪除的例子中,paramterType引數為int,#{id},id對應的呼叫改方法時傳入的引數!

<mapper namespace="com.hys.mybatis.dao.userDao">
    
    <insert id="insertUser" parameterType="com.hys.mybatis.pojo.user">
        insert into school.user (id,name,pwd) values (#{id},#{name},#{pwd})
    
</insert> <update id="updateUser" parameterType="com.hys.mybatis.pojo.user"> update school.user set pwd=#{pwd} where id=#{id} </update> <delete id="deleteUser" parameterType="int"> delete from school.user where id=#{id} </delete> </mapper>

5 程式碼測試,其中sqlsession的獲取,可以看我第一篇文章Mybatis入門(一),sqlsession這個物件獲取是固定的,把獲取的程式碼寫在一個工具類,省得每次寫

sqlsession獲取上面所寫的mapper,然後呼叫具體方法進行測試。除了查詢,增刪改都需要進行事務!!!!,需要提交!!!

    @Test
    public void insertUser(){
        SqlSession sqlSession = mybatisUtil.getSqlSession();
        userDao mapper = sqlSession.getMapper(userDao.class);
        mapper.insertUser(new user(7, "趙六", "123456"));
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void updateUser(){
        SqlSession sqlSession = mybatisUtil.getSqlSession();
        userDao mapper = sqlSession.getMapper(userDao.class);
        mapper.updateUser(new user(2,"88888","8888888"));
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void deleteUser(){
        SqlSession sqlSession = mybatisUtil.getSqlSession();
        userDao mapper = sqlSession.getMapper(userDao.class);
        mapper.deleteUser(2);
        sqlSession.commit();
        sqlSession.close();

    }