通過Maven配置MyBatis開發環境(eclipse)

1、創建一個mybatisdemo(maven web)的項目;
2、要配置pom.xml文件,追加mybatis有關的開發包;

<!-- 配置mybatis的開發包 -->
<dependency> 
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId> 
    <version>3.4.1</version> 
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.0.8</version> 
</dependency>
<!-- 配置junit測試類包-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <!-- 配置java web支持包-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
    <!-- 配置mysql支持包-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.0.8</version>
    </dependency>

以上就表示可以直接使用MyBatis 進行開發了。
3、在MyBatis 裏面實際上需要有一個綜合的配置文件,相當於進行MyBatis 所有核心內容的設置操作,包括:
①緩存配置;
②數據庫的連接配置(如果基於Spring 管理,則可以免除此配置);
③類別名配置;
④相關的資源文件映射配置(一張表一個資源文件)。
在src/resources/目錄下創建mybatis.cfg.xml 文件

<?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>
    <settings>
        <setting name="cacheEnabled" value="true"/>
    </settings>
        <typeAliases>
        <typeAlias type="cn.mldn.vo.News" alias="News"/>
    </typeAliases>
    <environments default="development"> 
        <!-- 配置數據源的相關信息 -->
        <environment id="development">
            <transactionManager type="jdbc" /> <!-- 使用JDBC方式管理 -->
            <dataSource type="POOLED"> <!-- 設置數據源類型,此時爲POOLED -->
                <property name="driver" value="org.gjt.mm.mysql.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mybatisdb" />
                <!-- 設置數據庫連接的用戶名和密碼 -->
                <property name="username" value="******" />
                <property name="password" value="******" /> 
            </dataSource> 
        </environment>

    </environments>
</configuration>

關於“dataSource type=”POOLED””的說明,實際上此處描述的就是數據庫的連接類型:
· “POOLED”:表示所有的數據庫的連接使用數據庫連接池進行保存,性能是最好的;
· “JNDI”:直接使用服務器上配置好的數據庫的連接池來進行數據庫的連接處理;
· “UNPOOLED”:不使用數據庫連接池,每次需要的時候都創建新的連接,性能很差;
關於“”的說明,有兩種的事務控制:
· “jdbc”:此操作表示使用JDBC 來實現數據庫的事務控制,也是唯一可選的事務控制;
· “MANAGED”:什麼都不做,即不提交事務也不回滾事務,具體的操作會由容器來完成。
4、創建Member.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">
<!-- 在每一個配置文件之中實際上都需要有一個獨立的命名空間(名字,日後引用就需要此名稱) -->
<!-- 考慮到後續要進行相關的日誌的配置操作,所以對於這個資源文件都建議設置一個包名稱 -->
<!-- 命名空間(Name Space),所以習慣“包名稱 + VO名稱 + NS” -->
<mapper namespace="vo.mapping.MemberNS">
    <!-- 定義要進行數據追加操作的SQL語句,每一個SQL都需要有一個自己獨立的ID,這個ID爲程序引用 -->
    <insert id="doCreate" parameterType="mybatis.vo.Member"> 
        INSERT INTO member(mid,name,age,salary,birthday,note) VALUES (#{mid},#{name},#{age},#{salary},#{birthday},#{note}) ; 
    </insert>

</mapper>

此時還需要在mybatis.cfg.xml 文件裏面進行相關的註冊配置;

<!-- 所有的映射文件的配置信息都要求在此處進行定義 -->
    <mappers> <!-- 映射文件信息 -->
        mapper resource="vo/mapping/Member.xml" />
    </mappers>

5、配置完成之後就需要進行數據的操作(準備好對應的數據庫),那麼如果要進行操作,則需要通過以下的幾個程序類完成:
· DOC 文檔類:mybatis-3.2.3-javadoc.jar;
· MyBatis 資源文件的讀取需要使用Reader、InputStream;
· 在MyBatis 之中所有的連接必須通過連接工廠取得:
·org.apache.ibatis.session.SqlSessionFactory;
實現具體的增加操作 —— TestMemberInsert.java

    @Test
    public void testInsert() throws Exception {
        // 1、需要讀取mybatis.cfg.xml配置文件,因爲所有的數據庫連接以及配置文件路徑
        // 因爲此時mybatis.cfg.xml保存在CLASSPATH路徑中,所以利用Resources類纔可以加載CLASSPATH路徑下的文件
        InputStream input = Resources.getResourceAsStream("mybatis.cfg.xml") ;
        // 2、當取得了配置文件信息之後就需要通過該配置文件信息創建數據庫的連接工廠類對象
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(input) ;
        // 3、通過SqlSessionFactory可以取得一個SqlSession接口對象, 利用SqlSession可以實現數據操作
        SqlSession session = factory.openSession() ;
        // 4、創建VO類對象,所有的數據保存在VO類裏面
        Member vo = new Member() ; 
        vo.setMid("hello - "+1);
        vo.setAge(15);
        vo.setBirthday(new Date());
        vo.setName("小李");
        vo.setSalary(500.0);
        vo.setNote("www.mldnjava.cn");
        // 5、進行數據保存控制,使用指定NS中的指定的語句處理本次執行
        int len =session.insert("cn.mldn.vo.mapping.MemberNS.doCreate", vo) ;
        // 6、提交事務,事務需要自己手工提交
        session.commit();
        // 7、關閉所有的操作資源
        session.close(); 
        input.close();
    }

通過以上代碼可以發現,用戶根本就不用關係具體的JDBC 實現,只需要寫好對應的SQL語句即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章