天天看點

Mybatis環境配置學習

Mybatis的使用環境配置步驟主要分為以下三步

1.導入jar包

2.建立mybatis的全局配置檔案,并編寫

3.建立mapper的配置檔案

一。導入jar包 --- (踩坑:這一步中的導入mysql驅動包總是忘記)

(1)需要導入 mybatis的jar包

(2)需要導入 mybatis的依賴包(即一些輔助包)

(3)需要導入 相應資料庫的驅動jar包  --- 這裡我導入的是 mysql-connector-8.0的jar包

二。mybatis的全局配置檔案

  首先,在建立的Java Web項目的 src 源檔案下 建立一個 mybatis.xml (檔案名和檔案位置并沒有硬性要求,但是這樣操作更合理更友善)

  在進行mybatis.xml編寫時,需要先引入 DTD,如下所示。其中具體的導入方式可以在 Mybatis的幫助文檔的入門裡查到

1 <!DOCTYPE configuration
2   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
3   "http://mybatis.org/dtd/mybatis-3-config.dtd">      

  執行完上述操作之後,需要開始mybatis.xml的具體内容配置

  标簽書寫順序依次為   <configuration>标簽  ---------   <environments>标簽  ------   <environment>标簽  ------    <transactionManager>标簽 和 <dataSource>标簽  -----  <dataSource>标簽内容寫入  4 個 <property />單标簽

具體内容如下所示

<?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>
    <environments default="default">
        <environment id="default">
            <transactionManager type="JDBC">
            </transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/ssm?characterEncoding=UTF-8&amp;serverTimezone=UTC&amp;useSSL=false" />
                <property name="username" value="" />
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>
    <!-- mapper.xml配置好之後,在mybatis.xml中更新導入其配置檔案 -->
    <mappers>
        <!-- xml檔案導入的方式 -->
        <mapper resource="com/xl/mapper/PeopleMapper.xml"/>
    </mappers>
</configuration>      

具體内容介紹:

<environments>标簽的default屬性 主要是根據 <environment> 的id屬性 來确定 預設的<environment>标簽

<environment>标簽中使用id屬性來 區分不同的資料庫

<transactionManager>标簽的type屬性 JDBC --- 事務管理使用原生的JDBC事務管理   

                   MANAGED --- 将事務管理轉交給其他容器(主要用于Spring架構等) --- 此時JDBC事務為 setAutoMapping(false);

<dataSource>标簽的 type屬性  POOLED--使用資料庫連接配接池  

                UNPOOLED---不使用資料庫連接配接池---類似直接使用JDBC  

                JNDI---Java命名接口技術

<property />單标簽 是用來存儲進入相應資料庫的資訊參數的  name放置參數名  value放置相應的參數值

  需要存儲4個參數  driver,url,username,password   ----  名字不能有任何變化,必須一一對應,否則無法進入資料庫

  我使用的mysql資料庫比較新,參數與舊版的驅動包有差別 ,(1)driver = “com.mysql.cj.jdbc.Driver”   ---  踩坑 -- 最後的Driver的D要大寫

                               (2) url = "jdbc:mysql://localhost:3306/資料庫名?相應的一些參數" ---- ?後面跟的參數與JDBC中使用的稍有差別:& 需要使用 &amp; 來表示(XML檔案特性?)

三。實體類的相應mapper的配置

首先mapper的命名要規範 :我這裡使用的是建立 相應的mapper包專門存儲mapper.xml,并且命名為 實體類名+Mapper.xml

mapper.xml檔案主要是用來 執行SQL語句的

  首先同樣要引入相應 DTD檔案,方法操作同上,隻不過這回要找的是mapper對應的DTD引入語句和檔案

  其次,需在mapper.xml檔案中依次寫入

    <mapper>标簽 ----  sql操作語句标簽(如 <select>标簽用來查詢操作),我的mapper.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.xl.mapper.PeopleMapper">
    <!-- 第一種選擇 選擇list -->
    <!-- 注意*************** 這裡的resultType值 如果是 實體類 一定要寫            絕對路徑 -->
    <select id="selAll" resultType="com.xl.pojo.People">
        select * from people
    </select>
    <!-- int是Integer的映射,但是這裡會自動拆箱和裝箱   _int是int類型的映射 -->
    <select id="selOne" resultType="int">
        select Count(*) from people
    </select>
    <select id="selMap" resultType="com.xl.pojo.People">
        select * from people
    </select>
</mapper>      

其中值得注意的是mapper标簽的 namespace屬性,他是用來定位的,并沒有具體的命名要求,但是之後尋找mapper.xml檔案進行操作是需要 使用   namespace+id的路徑組合

select标簽的 id屬性 也是用來定位的,一般是寫入方法名

      resultType屬性用來定義此次操作傳回的資料類型 --- 其中建立的實體類需要寫入絕對路徑,java自帶資料類型需要寫入相應的映射 --- 這裡會提供自動強轉

      paramType屬性用來定義此次操作需要傳入的參數類型

mybatis中查詢操作總共有三種:selectList("namespace+id");selectOne("namespace+id");selectMap("namespace+id","表中的某一個字段名")

最後的最後,最重要的一點:在配置完mapper.xml後,需要在 mybatis.xml檔案下的 configuration标簽下的mappers标簽中 添加  mapper單标簽;并在其中的 resource屬性中給出引入的mapper.xml的絕對路徑

繼續閱讀