I-初入MyBatis,基礎概念(不斷更新)

  • properties --- 用於提供一系列的鍵值對組成的屬性信息,該屬性信息能夠用於整個配置文件中。java

  • settings --- 用於設置 MyBatis 的運行時方式,好比是否啓用延遲加載等。mysql

  • typeAliases --- 爲 Java 類型指定別名,能夠在 XML 文件中用別名取代 Java 類的全限定名。sql

  • typeHandlers --- 在 MyBatis 經過 PreparedStatement 爲佔位符設置值,或者從 ResultSet 取出值時,特定類型的類型處理器會被執行。session

  • objectFactory --- MyBatis 經過 ObjectFactory 來建立結果對象。能夠經過繼承 DefaultObjectFactory 來實現本身的 ObjectFactory 類。mybatis

  • plugins --- 用於配置一系列攔截器,用於攔截映射 SQL 語句的執行。能夠經過實現 Interceptor 接口來實現本身的攔截器。app

  • environments --- 用於配置數據源信息,包括鏈接池、事務屬性等。ui

  • mappers --- 程序中全部用到的 SQL 映射文件都在這裏列出,這些映射 SQL 都被 MyBatis 管理。url


第一步:配置全局文件:Configuration.xml;
spa

<?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 alias="User" type="com.ieen.mybatis.model.User"/> 
    </typeAliases>
    
    <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://127.0.0.1:3306/testmybatis" />
            <property name="username" value="root"/>
            <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <mapper resource="com/ieen/mybatis/model/UserMapper.xml"/>
    </mappers>
    
</configuration>

Mybatis是經過sessionfactory產生sqlsession,由sqlsession對數據的增刪改查和事務提交等。(使用代碼)code

java.io.Reader reader = Resources.getResourceAsReader("Configuration.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = sqlSessionFactory.openSession();


第二步:編寫對應model的mapper映射文件:示例(UserMapper.xml)

<?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 namespace="com.ieen.mybatis.model.UserMapper">
    <select id="selectUserByID" parameterType="int" resultType="User">
        select * from user where id = #{id}
    </select>
</mapper>


第三步:使用方法一(直接訪問):

    SqlSessionFactory sqlSessionFactory;
    java.io.Reader reader;
    SqlSession session;
    try{
        reader = Resources.getResourceAsReader("Configuration.xml");
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        session= sqlSessionFactory.openSession();
        User user = (User) session.selectOne("com.ieen.mybatis.model.UserMapper.selectUserByID",2);
        System.out.println(user.getUserAddress());
        System.out.println(user.getUserName());
        session.close();
    }catch(Exception e){
        e.printStackTrace();
    }


方法二:(接口定義)定義一個接口,建立與映射文件xml裏面的sql語句的訪問方法。

訪問UserMapper.xml的接口定義; 

public interface UserMapper
{
    public User selectUserByID(int id);
}

使用方法:

UserMapper userMapper = sqlsession.getMapper(UserMapper.class);
User user = userMapper.selectUserByID(2);

    該方法的注意事項:(1)namespace改爲接口 UserMapper的路徑;

(2)接口名稱與XML文件的<mapper namespace="com.ieen.mybatis.model.UserMapper">配置一致。

相關文章
相關標籤/搜索