一、根據xml配置建立一個sqlsessionfactory的對象
有數據源的一些運行環境信息
二、sql映射文件,配置了每個sql,以及sql的封裝規則
三、將sql註冊在全局配置文件中
四、coding
1)根據全局配置文件獲得SqlsessionFactory
2)試用sqlsession工廠,獲取到sqlsession對象試用它來執行增刪改查
一個sqlsession就是表明與數據庫的一次對話,用完關閉(close)
3)使用sql惟一標識該告訴mybatis執行哪一個sql,sql都是保存在sql映射文件中sql
String resource = "mybatis-config.xml";數據庫
InputStream inputStrem = Resource.getResoureceAsStream(resource);session
SqlsessionFactory sessionFactory = new SqlSessionFactoryBuilder().Builder(resource);//獲取sqlsessionfactory對象mybatis
SqlSession opensession = sessionFactory.openSession();//使用opensession方法獲取sqlsession對象oracle
加載數據庫信息-->建立sqlsession工廠-->用OpenSession()方法建立sqlsession,每一個sqlsession都是一個數據庫查詢實例app
//獲取接口的實現類對象
//會爲接口自動的建立一個代理對象,代理對象去執行增刪改查方法ui
EmployeeMapper mapper = opensession.getMapper(EmployeeMapper.class);//獲取接口的實現類對象
Employee empById = mapper.getEmpById(1);//調用接口的方法
System.out.println(mapper.getClass());
System.out.println(empById);代理
傳多個參數時候須要加上@Param(「xx」)。xml
用註解來簡化xml配置的時候,@Param註解的做用是給參數命名,參數命名後就能根據名字獲得參數值,正確的將參數傳入sql語句中 對象
jdbc oracle
mybatis 在接口類中傳參
#{}和${}的區別:
我的理解就是#{}防止sql注入
${}用於處理sql語句中動態填入的部分,例如某個圖書的info表 書名_info_tbl,這時候書名就該直接拼接進來。又以下圖樣例中年份工資表和排序規則。無法sql預編譯,只能拼接。