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 2PUBLIC "-//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的絕對路徑