1. 程式人生 > 實用技巧 >javaweb mybatis的介面開發

javaweb mybatis的介面開發

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">
<!-- 門店表的對映檔案    namespace值為對應介面的全路徑 -->
<mapper namespace="com.tedu.dao.DoorMapper">
    <!-- 1.查詢所有門店資訊,id值為對應介面中方法的名字
        resultType指定將查詢的結果封裝到哪個pojo物件中
     -->
    <select id="findAll" resultType="com.tedu.pojo.Door">
        select * from tb_door
    </select>
</mapper>

mapper的介面檔案(介面由我們自己宣告,由Spring-mybatis提供子類實現類)

package com.tedu.dao;

import java.util.List;
import com.tedu.pojo.Door;
/**
 * DoorMapper介面 
 * 宣告增刪改查方法,對門店資訊進行操作
 */
public interface DoorMapper {
    /**
     *介面由我們開發人員負責提供,但介面的實現類(子類)由框架負責提供
     *如果不整合mybatis和spring框架,介面的子類例項也是由mybatis負責建立
     * 如果整合了mybatis和spring框架,介面的子類例項將會由spring容器負責建立
     */

//方法名必須肯mapper檔案中的id值一致
    public List<Door> findAll();
}

測試類中呼叫findAll方法

package com.tedu;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.jasper.tagplugins.jstl.core.ForEach;
import org.junit.Test;

import com.tedu.dao.DoorMapper;
import com.tedu.pojo.Door;


/**
 * mybatis的入門案例: 查詢yonghedb.emp表中的所有員工資訊
 */
public class TestMybatis01 {
	
	/* 練習1: 查詢emp中的所有員工資訊 */
	@Test
	public void testFindAll01() throws Exception {
		//1.讀取mybatis核心配置檔案(mybatis-config.xml),Resources是mybatis提供的工具類
		InputStream in = Resources.getResourceAsStream("mybatis/mybatis-config.xml");
		//2.通過配置資訊獲取SqlSession工廠物件
		SqlSessionFactory fac = new SqlSessionFactoryBuilder().build( in );
		//3.獲取SQLSession物件(開啟與資料庫的連線)
		SqlSession session = fac.openSession();
		//4.獲取Doormapper子類例項
		DoorMapper doormapper = session.getMapper(DoorMapper.class);
		List<Door> lis = doormapper.findAll();
		//5.輸出結果
		for (Door door : lis) {
			System.out.println(door);
		}	
	}
}