轉載:mybatis入門

duruiyang603發表於2015-09-18

1,在xml配置檔案中配置資料來源、註冊Mapper
<configuration>
    <environments default="development">
        <environment id="development">
            <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="XDP" />
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <!-- 註冊userMapper.xml檔案, 
        userMapper.xml位於me.gacl.mapping這個包下,所以resource寫成me/gacl/mapping/userMapper.xml-->
        <mapper resource="me/gacl/mapping/userMapper.xml"/>
    </mappers>   
</configuration>

2,配置好相應Mapper
在Mapper中配置SQL語句

<!-- 為這個mapper指定一個唯一的namespace,namespace的值習慣上設定成包名+sql對映檔名,這樣就能夠保證namespace的值是唯一的
例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml檔案去除字尾)
 -->
<mapper namespace="me.gacl.mapping.userMapper">
    <!-- 在select標籤中編寫查詢的SQL語句, 設定select標籤的id屬性為getUser,id屬性值必須是唯一的,不能夠重複
    使用parameterType屬性指明查詢時使用的引數型別,resultType屬性指明查詢返回的結果集型別
    resultType="me.gacl.domain.User"就表示將查詢結果封裝成一個User類的物件返回
    User類就是users表所對應的實體類
    -->
    <!-- 
        根據id查詢得到一個user物件
     -->
    <select id="getUser" parameterType="int" 
        resultType="me.gacl.domain.User">
        select * from users where id=#{id}
    </select>
</mapper>

3,使用Mybatis的方式運算元據庫

        //mybatis的配置檔案
        String resource = "conf.xml";
        //使用類載入器載入mybatis的配置檔案(它也載入關聯的對映檔案)
        InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);
        //構建sqlSession的工廠
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        //使用MyBatis提供的Resources類載入mybatis的配置檔案(它也載入關聯的對映檔案)
        //Reader reader = Resources.getResourceAsReader(resource);
        //構建sqlSession的工廠
        //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //建立能執行對映檔案中sql的sqlSession
        SqlSession session = sessionFactory.openSession();
        /**
         * 對映sql的標識字串,
         * me.gacl.mapping.userMapper是userMapper.xml檔案中mapper標籤的namespace屬性的值,
         * getUser是select標籤的id屬性值,通過select標籤的id屬性值就可以找到要執行的SQL
         */
        String statement = "me.gacl.mapping.userMapper.getUser";//對映sql的標識字串
        //執行查詢返回一個唯一user物件的sql
        User user = session.selectOne(statement, 1);
        System.out.println(user);
    





相關文章