Mybatis簡介、環境搭建
阿新 • • 發佈:2018-12-02
簡介:
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 }
檔案目錄