以下内容引用自http://www.yihaomen.com/article/java/336.htm:

在MyBatis3中这个Mapper接口貌似充当了以前在iBatis2中的DAO层的作用。但事实上,如果有这个Mapper接口不能完成的工作,或者需要更复杂的扩展的时候,就需要自己的DAO层. 事实上MyBatis3也是支持DAO层设计的,类似于iBatis 2。

在此之前,将使用上一章http://www.cnblogs.com/EasonJim/p/7056270.html使用的例子代码。

实现步骤如下:

1、首先创建一个com.jsoft.testmybatis.dao的package然后在里面分别创建接口UserDAO,以及实现该接口的UserDAOImpl。

package com.jsoft.testmybatis.dao;import java.util.List;
import com.jsoft.testmybatis.models.Article;public interface UserDAO {public List<Article> getUserArticles(int userid);
}

package com.jsoft.testmybatis.dao;import java.util.List;import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import com.jsoft.testmybatis.models.Article;@Repository
public class UserDAOImpl extends SqlSessionDaoSupport implements UserDAO {@Autowired(required = false)@Qualifier("sqlSessionFactory")public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {super.setSqlSessionFactory(sqlSessionFactory);}@Overridepublic List<Article> getUserArticles(int userid) {return this.getSqlSession().selectList("com.jsoft.testmybatis.inter.IUserOperation.getUserArticles", userid);}
}

执行的SQL语句采用了包名+SQL语句id的方式,后面是参数。

注意继承了"SqlSessionDaoSupport",利用方法getSqlSession()可以得到SqlSessionTemplate,从而可以执行各种SQL语句,类似于HibernateTemplate一样,至少思路一样。

如果与Spring 3 MVC集成要用@Autowire的话,在DAOImpl类上加上注解“@Repository”,另外还需要在Spring配置文件中加入<context:component-scan base-package="com.jsoft.testmybatis.dao" /> 这样在需要调用的地方,就可以使用@Autowire自动注入。

因此,在spring-mvc-servlet.xml中配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><context:component-scan base-package="com.jsoft.testmybatis.controller" /><context:component-scan base-package="com.jsoft.testmybatis.dao" /><context:annotation-config /><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix"><value>/WEB-INF/jsp/</value></property><property name="suffix"><value>.jsp</value></property></bean></beans>

当然,也可以按一般程序的思路,创建一个service的package, 用service去调用dao层,用类似的方法,注意自动注入时,也要配置<context:component-scan base-package="com.jsoft.testmybatis.service" /> 等这样的。

2、在controller层中测试,直接调用dao层方法

    @AutowiredUserDAO userDAO;@RequestMapping("/daolist")public ModelAndView listalldao(HttpServletRequest request,HttpServletResponse response){List<Article> articles=userDAO.getUserArticles(1); ModelAndView mav=new ModelAndView("/article/list");mav.addObject("articles",articles);return mav;}

3、整体的项目结构如下:

测试工程:https://github.com/easonjim/5_java_example/tree/master/mybatis/test10

MyBatis3-SqlSessionDaoSupport的使用相关推荐

  1. Spring3.2.8+Mybatis3.2.6 多数据源基于BaseDAO的配置

    Spring3.2.8+Mybatis3.2.6 多数据源基于BaseDAO的配置 配置数据源为: MySQL5.5.6 H2Database 1.3.75 这个配置起来比较麻烦,本文这种方法有点麻烦 ...

  2. MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO(二)

    (本文示例工程源代码下载地址:http://down.51cto.com/data/1975295) 在上一篇博文的最后,介绍了使用@PostConstruct注解标注StudentDao的init方 ...

  3. MyBatis3.x和Spring3.x的整合

    MyBatis3.x和Spring3.x的整合 2017/10/02 1.mybatis和spring整合的思路 1.让spring管理SqlSessionFactory 2.让spring管理map ...

  4. Spring3 整合MyBatis3 配置多数据源 动态选择SqlSessionFactory

    一.摘要 上两篇文章分别介绍了Spring3.3 整合 Hibernate3.MyBatis3.2 配置多数据源/动态切换数据源 方法 和 Spring3 整合Hibernate3.5 动态切换Ses ...

  5. MyBatis3.1.1+Spring3.1.2+Struts2.3.4.1

    地址:http://takeme.iteye.com/blog/1736320 MyBatis3.1.1+Spring3.1.2+Struts2.3.4.1 先来看目录结构  来看配置文件  appl ...

  6. Spring3+MyBatis3整合无法输出SQL语句问题的解决

    2019独角兽企业重金招聘Python工程师标准>>> Spring3+MyBatis3整合无法输出SQL语句问题的解决 转载于:https://my.oschina.net/huh ...

  7. 在Mybatis3开发中与配置相关的7点体会

    Mybatis3前身是Apche开源项目ibatis,后前移至google code改名为Mybatis,mybatis是Java持久化框架,关于Mybatis学习难度不大,熟悉JDBC编程的话,相信 ...

  8. MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合

    2019独角兽企业重金招聘Python工程师标准>>> 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: mvn archetype:create -Dgrou ...

  9. MyBatis3 xml映射文件配置

    MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好.与具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码. MyBatis3官方文档 http://www. ...

  10. Spring Mybatis实例SqlSessionDaoSupport混用xml配置和注解

    2019独角兽企业重金招聘Python工程师标准>>> 一.表(这里用mysql,数据库名为yiibai) CREATE TABLE `user` (`id` int(10) UNS ...

最新文章

  1. JVM中的垃圾收集器
  2. 简要解释什么是Conv1d,Conv2d,Conv3d
  3. iOS开发-UITableView顶部图片下拉放大
  4. Oracle与Mysql主键、索引及分页的区别小结
  5. 死磕18个Java 8的日期处理,工作必用!
  6. (转)SQL操作全集
  7. c51单片机有几个终端语言,吃过大亏,才知道要从51单片机入手
  8. 华为全面启航计算战略:“鲲鹏+昇腾”双引擎
  9. libjpeg学习1:简单使用示例
  10. GNS3(1.下载与安装)
  11. vue 城市级联选择 distPicker
  12. cmd查看计算机用户密码,电脑WIFI密码哪里查看?Windows系统cmd命令一键查找历史已连接密码...
  13. Eureka Client 源码解析
  14. 实验吧 NSCTF web200
  15. 课程表的实现(基于强智科技教务系统)
  16. 大数据处理与分析方向主要干什么_大数据分析_方向_方法与工具
  17. c语言实现各种排序算法(作业:点名册排序)
  18. 如何在Axure中设置根据标签导航切换页面?
  19. SG函数求解 NIM游戏先手必胜必败问题
  20. 8205A TSSOP-8 6A20V双N沟道场效应锂电池保护IC

热门文章

  1. 蓝桥杯 BASIC-14 基础练习 时间转换
  2. 1121. Damn Single (25)-PAT甲级真题
  3. 蓝桥杯 ADV-167算法提高 快乐司机(贪心算法)
  4. 联合索引会创建几个索引_联合索引在B+Tree上的存储结构及数据查找方式
  5. linux 解压缩指令
  6. PERL 使用IO::Socket::INET模块实现socket编程
  7. BZOJ1324Exca王者之剑BZOJ1475方格取数——二分图最大独立集
  8. 切换输入法默认语言为英文
  9. Jenkins构建jmeter进行接口测试的一些配置
  10. 开机SystemServer到ActivityManagerService启动过程分析