Java框架MyBatis接口編程過程解析
要求:
1.配置文件的namespace名稱空間指定為接口的全類名
2.配置文件中的id唯一標(biāo)識與接口中的方法對應(yīng)(返回值類型對應(yīng),方法名對應(yīng),參數(shù)個(gè)數(shù)和類型對應(yīng))
接口代碼:
package com.bird.mybatis.dao;import com.bird.mybatis.bean.Employee;public interface EmployeeMapper { public Employee getEmpById(Integer id); }
對應(yīng)配置文件代碼:
<?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'> <!-- namespace:名稱空間(若使用接口式編程,與EmployeeMapper接口全類名一致) id:唯一標(biāo)識(與接口中的方法名對應(yīng)) resultType:返回值類型(與對應(yīng)方法的返回值對應(yīng)) #{id}:從傳遞過來的參數(shù)中取出id值 --><mapper namespace='com.bird.mybatis.dao.EmployeeMapper'> <select resultType='com.bird.mybatis.bean.Employee'> select id,last_name lastName,gender,email from tbl_employee where id = #{id} </select></mapper>
測試代碼:
/** * MyBatis接口編程 * @throws IOException */ @Test void test2() throws IOException { //獲取sqlSessionFactory對象 SqlSessionFactory ssf = getSqlSessionFactory(); //獲取sqlSession對象 SqlSession openSession = ssf.openSession(); try { //獲取接口的實(shí)現(xiàn)類對象 EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class); Employee empById = mapper.getEmpById(1); System.out.println(empById); }finally { openSession.close(); } } /** * 獲取sqlSessionFactory對象 * @throws IOException */ public static SqlSessionFactory getSqlSessionFactory() throws IOException { String resource = 'mybatis-config.xml'; InputStream is = Resources.getResourceAsStream(resource); return new SqlSessionFactoryBuilder().build(is); }
總結(jié):
1.接口編程:
原生接口: Dao ===> DaoImpl
MyBatis: Dao ===> Mapper.xml
2. SqlSession代表與數(shù)據(jù)庫的一次會話,用完要關(guān)閉
3. SqlSession和Connection都是非線程安全的,所以每次都要獲取新的對象,而不能寫成成員變量
4.mapper接口沒有實(shí)現(xiàn)類,但是MyBatis生成代理對象
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Ajax引擎 ajax請求步驟詳細(xì)代碼2. JS語法也可以有C#的switch表達(dá)式3. JSP實(shí)時(shí)顯示當(dāng)前系統(tǒng)時(shí)間的四種方式示例解析4. python 利用toapi庫自動(dòng)生成api5. 多級聯(lián)動(dòng)下拉選擇框,動(dòng)態(tài)獲取下一級6. 詳解Struts2中對未登錄jsp頁面實(shí)現(xiàn)攔截功能7. 老生常談.NET中的 COM 組件8. CSS3+Js實(shí)現(xiàn)響應(yīng)式導(dǎo)航條9. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)10. ASP.NET MVC前臺動(dòng)態(tài)添加文本框并在后臺使用FormCollection接收值
