鍍金池/ 教程/ Java/ MyBatis SqlSessionDaoSupport實例
Mybatis表關(guān)聯(lián)多對一
MyBatis打印輸出SQL語句
Mybatis表關(guān)聯(lián)一對多
mybaits if標簽語句
MyBatis整合Spring MVC
MyBatis動態(tài)SQL語句
MyBatis教程
MyBatis choose(when, otherwise)標簽
Mybatis與Spring集成
MyBatis分頁
MyBatis SqlSessionDaoSupport實例
MyBatis where標簽語句
Mybatis增刪改查(CURD)
Mybatis接口注解
Mybatis trim標簽
Mybatis set標簽
Mybatis 多對多
MyBatis環(huán)境配置及入門

MyBatis SqlSessionDaoSupport實例

在前面的章節(jié)中,我們已經(jīng)講到了基本的 mybatis 操作,但都是基于 mapper 隱射操作的,在 mybatis3 中這個 mapper 接口貌似充當了以前在ibatis 2中的 DAO 層的作用。但事實上,如果有這個mapper接口不能完成的工作,或者需要更復雜的擴展的時候,我們就需要自己寫 DAO 層。 mybatis 3 也是支持 DAO 層設計的,類似于 ibatis2。下面我們結(jié)合一個實例來介紹。

首頁我們創(chuàng)建一個工程為:mybatis11,再創(chuàng)建一個 com.yihaomen.dao 包,然后在里面分別創(chuàng)建接口UserDAO,并實現(xiàn)該接口 UserDAOImpl 。整個工程的目錄結(jié)構(gòu)如下:

MyBatis SqlSessionDaoSupport應用實例


UserDao接口的代碼如下:

package com.yiibai.dao;

import java.util.List;

import com.yiibai.pojo.Order;

public interface UserDAO {
    public List<Order> getUserOrders(int userId);
}
UserDaoImpl 實現(xiàn)UserDao接口的代碼如下:

package com.yiibai.dao;

import java.util.List;

import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.stereotype.Repository;

import com.yiibai.pojo.Order;

@Repository
public class UserDAOImpl extends SqlSessionDaoSupport implements UserDAO {
	public List<Order> getUserOrders(int userId) {
		// TODO Auto-generated method stub
		return this.getSqlSession().selectList("com.yiibai.inter.IUser.getUserOrders",userId);
	}
}
控制類 UserController.java 的代碼如下:

package com.yiibai.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.yiibai.dao.UserDAO;
import com.yiibai.pojo.Order;
import com.yiibai.util.Page;

// http://localhost:8080/mybatis08-paging/user/orders
@Controller
@RequestMapping("/user")
public class UserController {
	//UserMaper userMaper;
	
	@Autowired
	UserDAO userDao;
	
	/**
	 * 某一個用戶下的所有訂單(Dao方式)
	 * URL => http://localhost:8080/mybatis11/user/lists
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping("/lists")
	public ModelAndView listalldao(HttpServletRequest request,
			HttpServletResponse response) {
		List<Order> orders = this.userDao.getUserOrders(1);
		// 制定視圖 =>list.jsp
		ModelAndView mav = new ModelAndView("lists");
		mav.addObject("orders", orders);
		return mav;
	}

}
下一步,我們運行檢驗結(jié)果(根據(jù)用戶ID,讀取這個用戶的所有訂單),打開瀏覽器,輸入網(wǎng)址:http://localhost:8080/mybatis11/user/lists ,結(jié)果如下圖所示:


工程 mybatis11 的代碼下載:http://pan.baidu.com/s/1sjrEL9V

Jar 包下載:http://pan.baidu.com/s/1bnyRJ9H