mybatis入門程式:刪除、更新使用者&&hibernate和mybatis的區別

悲風天涯發表於2020-10-03

1、刪除、更新使用者

(1)對映檔案中新增SQL語句

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace名稱空間,作用就是對SQL進行分類化管理,理解為SQL的隔離-->
<mapper namespace="test">
    <!--刪除使用者-->
    <delete id="deleteUser" parameterType="int">
        delete from user where id=#{id}
    </delete>

    <!--更新使用者資訊-->
    <update id="updateUser" parameterType="edu.tjut.pojo.User">
        update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}
    </update>
</mapper>

(2)、java程式

刪除使用者
 // 刪除使用者
    @Test
    public void deleteUser() throws IOException {

        //mybatis配置檔案
        String resource = "SqlMapConfig.xml";
        //得到配置檔案流
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //建立會話工廠,傳入mybatis的配置檔案資訊
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //通過工廠得到SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //通過SqlSession運算元據庫
        sqlSession.delete("test.deleteUser",15);
        //提交事務
        sqlSession.commit();
        //釋放資源
        sqlSession.close();
    }

更新使用者
// 更新使用者資訊
    @Test
    public void updateUser() throws IOException {

        //mybatis配置檔案
        String resource = "SqlMapConfig.xml";
        //得到配置檔案流
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //建立會話工廠,傳入mybatis的配置檔案資訊
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //通過工廠得到SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        // 建立需要更新物件的資訊
        User user = new User();
        user.setId(13);
        user.setUsername("李大明");
        user.setBirthday(new Date(1996-1900,8-1,24+1));
        user.setSex("女");
        user.setAddress("北京");
        System.out.println("這是測試:"+user);
        //通過SqlSession運算元據庫
        sqlSession.update("test.updateUser",user);
        //提交事務
        sqlSession.commit();
        //釋放資源
        sqlSession.close();
    }

2、hibernate和mybatis的區別

(1)hibernate:是一個標準ORM框架(物件關係對映),入門門檻較高,不需要程式設計師寫sql,sql語句自動生成了,對sql語句進行優化、修改比較困難
應用場景:
適用於需求變化不多的中小型專案,比如:後臺管理系統,erp、orm、oa。。。
(2)mybatis:專注於SQL本身,需要程式設計師自己編寫sql語句,sql修改、優化比較方便。mybatis是一個不完全的ROM框架,雖然程式設計師自己寫sql,mybatis
也可以實現對映(輸入對映、輸出對映)
應用場景:
適用於需求變化比較多的專案,比如:網際網路專案

相關文章