mybatis SqlSessionDaoSupport的使用(附代码下载)(转)_weixin_30590285的博客-程序员秘密

技术标签: java  测试  

前面的系列mybatis 文章,已经基本讲到了mybatis的操作,但都是基于mapper隐射操作的,在mybatis 3中这个mapper 接口貌似充当了以前在ibatis 2中的 DAO 层的作用。但事实上,如果有这个mapper接口不能完成的工作,或者需要更复杂的扩展的时候,你就需要自己的DAO 层. 事实上 mybatis 3 也是支持DAO 层设计的,类似于ibatis 2 .下面介绍下.

在此之前,请下载 上一篇文章提供的代码:http://www.yihaomen.com/article/java/326.htm 

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

程序代码 程序代码

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



程序代码 程序代码

package com.yihaomen.dao;
import java.util.List;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.stereotype.Repository;
import com.yihaomen.model.Article;

@Repository
public class UserDAOImpl extends SqlSessionDaoSupport implements UserDAO {
    @Override
    public List<Article> getUserArticles(int userid) {        
        return this.getSqlSession().selectList("com.yihaomen.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.yihaomen.dao" /> 这样在需要调用的地方,就可以使用autowire自动注入了。

当然,你也可以按一般程序的思路,创建一个service 的package, 用service 去调用 dao层,我这里就没有做了,因为比较简单,用类似的方法,也机注意自动注入时,也要配置 <context:component-scan base-package="com.yihaomen.service" /> 等这样的。

在controller层中测试,直接调用dao层方法
在controller中加入方法:

程序代码 程序代码


    @Autowired
    UserDAO userDAO;

        .......

    @RequestMapping("/daolist")
    public ModelAndView listalldao(HttpServletRequest request,HttpServletResponse response){
        List<Article> articles=userDAO.getUserArticles(1);
        //制定视图,也就是list.jsp
        ModelAndView mav=new ModelAndView("list");
        mav.addObject("articles",articles);
        return mav;
    }


这样可以得到同样的结果,而且满足了一般程序的设计方法.代码结构如下:


完成后,程序代码下载.
下载文件 点击下载此文件 

转载于:https://www.cnblogs.com/yanhuanghero/p/3373943.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30590285/article/details/98382997

智能推荐

.net core学习_weixin_30407099的博客-程序员秘密

系列教程一目录:.netcore+vue 前后端分离https://www.cnblogs.com/laozhang-is-phi/default.html?page=2学习ASP.NET Core Razor 编程系列https://www.cnblogs.com/chillsrc/p/9687312.html转载于:https://www.cnblogs.com/KQNLL...

net core体系-2继续认识net core_weixin_30471561的博客-程序员秘密

认识net core,net core到底啥?从哪说起呢?我想作为开发的码农,web项目不陌生吧,那就从对应的.netweb对应的net core Web Application项目开始吧。下面是本篇将要分享的学习步奏,对于刚学或者即将要学习的朋友做个相互交流:1.window7系统搭建开发环境2.快速创建个net core Web Application项目,简单认识c...

【PTA】7-2 用虚函数计算各种图形的面积 (10 分)_用虚函数分别计算各种图形的面积pta_真的吃很多的博客-程序员秘密

定义抽象基类Shape,由它派生出五个派生类:Circle(圆形)、Square(正方形)、Rectangle( 长方形)、Trapezoid (梯形)和Triangle (三角形),用虚函数分别计算各种图形的面积,输出它们的面积和。要求用基类指针数组,每一个数组元素指向一个派生类的对象。PI=3.14159f,单精度浮点数计算。输入格式:输入在一行中,给出9个大于0的数,用空格分隔,分别代表圆的半径,正方形的边长,矩形的宽和高,梯形的上底、下底和高,三角形的底和高。输出格式:输出所有图形的面积和,

js 获取url问号前_js获取历史url_weixin_39730263的博客-程序员秘密

js获取历史url以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一、JS高手呢,获取历史网址你的问题涉及到 Same Origin Policy(同源策略),这是一个关系到隐私和安全性的问题。任何浏览器都不会给你机会让你访问 **异域** 历史网址。但是,如果这三个页面在同一域名下,你可以使用 Javascript 的...

mysql上利用通配符模糊匹配数据库进行grant_beyondlpf的博客-程序员秘密

给业务搭建数据库时由于采用的时分库策略,导致每个服务器上都有上百个数据库,新用户需要只对这些库有权限读写,由于服务器多,数据库多,如果采用逐个赋权限会很麻烦在mysql中,当我们想对某个用户赋予权限时,对于数据库可以利用通配符(_和%)指定一类数据库进行操作,这样就可以避免逐个操作啦。举例如下,假设我们有数据库,root@(none) 09:41:16>show databases;

InnoDB关键特性之insert buffer_insert buffer参数_30baby的博客-程序员秘密

insert buffer 是InnoDB存储引擎所独有的功能。通过insert buffer,InnoDB存储引擎可以大幅度提高数据库中非唯一辅助索引的插入性能。数据库对于自增主键值的插入是顺序的,因此插入能有较高的性能。但是实际生产环境中,用户表中主键仅有并且只能有1个,然而表中可能存在多个辅助索引。为了阐述非聚集索引写性能问题,我们先来看一个例子:mysql&amp;gt;create ...

随便推点

求助关于atom编译python程序_第九日饕餮的博客-程序员秘密

刚开始使用atom,想用atom来编写python的程序,按照教程装了script,但运行程序后总显示一堆乱码,如图:该如何解决?

ant design pro表格排序(可以点击三次)_hideinform_旭旭1998的博客-程序员秘密

1、首先在column属性中添加sorter: true{ title: '流量计编码', dataIndex: 'flowmeterCode', hideInForm: true, ellipsis: true, sorter: true }点三次需要再加一个tablechange:tableChange如下,当表格排序有变化是重新加载表格: const tableChange = (pagination: any, fil

第九届蓝桥杯省赛C++B组 日志统计(双指针滑动窗口巧妙)_c++ 统计日志_小王子y的博客-程序员秘密

小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 NN 行。其中每一行的格式是:ts id表示在 ts 时刻编号 id 的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 DD 的时间段内收到不少于 KK 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 TT 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是”热帖”。给定日志,请你帮助小明统计出所有曾是”热帖”的帖子编号。输

IP: 169.254.0.0/16 地址用途_微风--轻许--的博客-程序员秘密

1. 一直困惑169.254.0.0/16是干嘛的,每次笔记本dhcp获取地址失败后,就会随机在这个B类地址段获取一个地址;在rfc5735里面有对所有特殊网络地址说明;以下引用rfc5735:169.254.0.0/16 - This is the &quot;link local&quot; block. As described in[RFC3927], it is allocated for...

Python小玩意儿:头像集福_TEDxPY的博客-程序员秘密

Python小玩意儿:头像集福效果图程序/代码设计思路获取头像头像集福效果图通过itchat接口下载微信好友头像,将头像图片组合成福字样式生成图片程序/代码先放资源:封装好的exe文件下载:百度网盘链接https://pan.baidu.com/s/1cIgF4rTYracNUYJ_clXy9w 提取码:i0kgGitHub代码及exe程序下载链接:https://github.co...

基于python的异方差检验_怀特检验异方差判定标准_weixin_39964573的博客-程序员秘密

White Heteroskedasticity Test:F-statistic 4.148468 Probability 0.011832Obs*R-squared 11.60896 Probability 0.020509Test Equation:Depend...

推荐文章

热门文章

相关标签