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&serverTimezone=UTC&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中使用的稍有差別:& 需要使用 & 來表示(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的絕對路徑