1. 程式人生 > >MyBatis入門案例

MyBatis入門案例

1.首先引入所需jar包(這些jar包都是從Mybatis網站上下載的,我在這裡將其全部匯入進來。在後期用Maven開發專案時,就不需要向這樣匯入jar包了)

專案結構:


編寫持久層我個人一般都是從  實體類-->對映關係-->通過實體類操作資料庫  。

1.實體類:(資料表的建立略)
public class User {

    private int id;
    private String name;
    private String password;
  //省略對應set()、get()方法
}

2.對映檔案:(該檔案一般與mapper介面放在一起)

<?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">
    <!-- 此處的名稱空間是遵循一定規則的(名稱空間值為mapper介面的全限定名),適用於Mybatis代理的方式開發 -->
    <mapper namespace="com.lin.mapper.UserMapper">
    <!-- 在對映檔案中配置sql語句 -->
    <!-- 通過select執行資料庫查詢 -->
    <select id="findUserById" parameterType="int" resultType="user">
        select * from user
            where id=#{id}
    </select>

</mapper>

3.MyBatis的全域性配置資訊:(該檔案在Mybatis與spring整合時不再使用,在此故只做簡單瞭解即可)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 定義別名 -->
    <typeAliases>  <typeAlias type="com.lin.entity.User" alias="user"/>  </typeAliases>
    <!-- 定義資料庫資訊,預設使用development資料庫構建環境 -->
    <environments default="development">
        <environment id="development">
            <!-- 採用JDBC事務管理 -->
            <transactionManager type="JDBC"/>
            <!-- 配置資料庫連線資訊 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="546784"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 定義對映器,載入對映檔案 -->
    <mappers>
        <mapper resource="com/lin/mapper/UserMapper.xml"/>
    </mappers>  
</configuration>

4.mapper介面:
/**建立Mapper介面(相當於Dao介面),按照一定的規則編寫方法,就可以使用MyBatis代理方式操作物件 * */
public interface UserMapper {
    //根據使用者id查詢使用者資訊
    public User findUserById(int id) throws Exception;   
}

4.測試類:

public class MybatisTest {
    
    //根據使用者id查詢使用者資訊
    @Test
    public void findUserById() throws Exception {
        //ͨ定義SqlSession
        SqlSession sqlSession = null;
        try {
            //讀取MyBatis的全域性配置檔案
            String resource = "mybatis/mybatis-config.xml";
            //讀取MyBatis的全域性配置檔案
            InputStream inputStream = Resources.getResourceAsStream(resource);
            //根據流物件獲取會話工廠sqlSessionFactory
            SqlSessionFactory  sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            //建立會話sqlSession
            sqlSession = sqlSessionFactory.openSession();
            //通過sqlSession執行對資料庫的相關操作
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            User user = userMapper.findUserById(1);
            
            System.out.println(user.getName());
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            //關閉會話
            sqlSession.close();
        }
        
    }
}

總結:一個MyBatis的入門程式還是相對簡單的,但是要注意的就是如果想使用mapper代理的方式,還是要多注意細節,像是名稱空間,還有對映的引數,這些都需要注意。。最近是在看 視訊教程,今天看到mybatis中最關鍵的 輸入對映 和 輸出對映 ,還有後續的快取什麼的好像都是相對複雜點的,後面再慢慢學習總結。。