1. 程式人生 > >Mybatis簡介、環境搭建

Mybatis簡介、環境搭建

 

簡介:

  1、Mybatis  開源免費框架,原名叫iBatis,2010在google code,2013年遷移到github

  2、作用: 資料訪問層框架

    2.1  底層是對JDBC的封裝

  3、mybatis優點之一:

    3.1 使用mybatis時,不需要編寫實現類,只需要寫需要執行的sql命令。

環境搭建:

  1、匯入jar                   (之前把mysql的驅動包放入tomcat中了,所有在這裡沒有匯入mysql驅動包)

       

  2、在src下新建全域性配置檔案(編寫JDBC四個變數)

     2.1 在src目錄下新建xml檔案  (src/mybatis.xml)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration                  2-4是引入遠端的DTD檔案,進行程式碼的提示
 3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <!-- default引用environment的id,當前所使用的環境 -->
 7
<environments default="default"> 8 <!-- 宣告可以使用的環境 --> 9 <environment id="default"> 10 <!-- 使用原生JDBC事務 --> 11 <transactionManager type="JDBC"></transactionManager> 12 <!-- 資料庫的連線池 -->               配置JDBC四個變數
13 <dataSource type="POOLED">          14 <property name="driver" value="com.mysql.jdbc.Driver"/> 15 <property name="url" value="jdbc:mysql://localhost:3306/ssm"/> 16 <property name="username" value="root"/> 17 <property name="password" value="362222"/> 18 </dataSource> 19 </environment> 20 </environments>
21 <mappers>
22        <mapper resource="com/bjsxt/mapper/FlowerMapper.xml"/>
23    </mappers>   24 </configuration>

   3、新建以mapper結尾的包,在包下新建:實體類名+Mapper.xml 的檔案

    3.1  檔案的作用: 編寫需要執行的SQL語句

    3.2  把xml理解成實現類

        實現過程是:mybatis底層將xml檔案解析反射成實現類進行資料操作  

    3.3  配置過程    (com/bjsxt/mapper/FlowerMapper.xml)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper
 3   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <!-- namesapce:理解成實現類的全路徑(包名+類名) -->
 6  <mapper namespace="a.b">
 7      <!-- id:方法名
 8              parameterType:定義引數型別
 9              resultType:返回值型別
10              
11              如果方法返回值是list,在resultType中寫List的泛型,因為mybatis對
12              jdbc封裝,一行一行讀取資料 
13       -->                 通過反射找到自定義的類  (查詢的是List集合,為什麼型別是自定義的類??因為底層是對JDBC封裝的(ResultSet一次只能讀取一行資料),一行資料是一個實體類)
14      <select id="sellAll" resultType="com.bjsxt.pojo.Flower">
15          select * from flower
16      </select>
17  </mapper>

   4、測試結果(只有在單獨使用mybatis時使用,最後ssm整合時下面程式碼不需要編寫)

     4.1 新建一個包一個類進行測試

      

 1 package com.bjsxt.test;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.util.List;
 6 
 7 import org.apache.ibatis.io.Resources;
 8 import org.apache.ibatis.session.SqlSession;
 9 import org.apache.ibatis.session.SqlSessionFactory;
10 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
11 
12 import com.bjsxt.pojo.Flower;
13 
14 public class Test {
15     public static void main(String[] args) {
16         InputStream is = null;
17         try {
18             is = Resources.getResourceAsStream("mybatis.xml");
19             
20         } catch (IOException e) {
21             // TODO Auto-generated catch block
22             e.printStackTrace();
23         }
24         //使用工廠設計模式
25         SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
26         //生產SqlSession
27         SqlSession session=factory.openSession();
28         
29         List<Flower> list = session.selectList("a.b.sellAll");
30         for(Flower flower:list){
31             System.out.println(flower.toString());
32         }
33         session.close();
34     }
35 }

 

  檔案目錄