博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis3-SqlSessionDaoSupport的使用
阅读量:5786 次
发布时间:2019-06-18

本文共 2434 字,大约阅读时间需要 8 分钟。

以下内容引用自:

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

在此之前,将使用上一章使用的例子代码。

实现步骤如下:

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
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;@Repositorypublic class UserDAOImpl extends SqlSessionDaoSupport implements UserDAO {        @Autowired(required = false)    @Qualifier("sqlSessionFactory")    public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {        super.setSqlSessionFactory(sqlSessionFactory);    }        @Override    public List
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中配置如下:

/WEB-INF/jsp/
.jsp

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

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

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

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

 

测试工程:

转载地址:http://ddmyx.baihongyu.com/

你可能感兴趣的文章
探寻Interpolator源码,自定义插值器
查看>>
一致性哈希
查看>>
Web日志安全分析工具 v2.0发布
查看>>
JS重载
查看>>
python2和python3同安装在Windows上,切换问题
查看>>
php加速工具xcache的安装与使用(基于LNMP环境)
查看>>
android超链接
查看>>
统计数据库大小
查看>>
第十六章:脚本化HTTP
查看>>
EXCEL表中如何让数值变成万元或亿元
查看>>
L104
查看>>
用javascript获取地址栏参数
查看>>
一起谈.NET技术,你应该知道的15个Silverlight诀窍
查看>>
商教助手!解析夏普液晶高清宽屏投影机系列
查看>>
云南去年有望实现151万贫困人口净脱贫
查看>>
Java架构师面试题系列整理(大全)
查看>>
延伸产业链 中国产粮大省向“精深”问发展
查看>>
消费贷用户70%月收入低于5000元 80、90后是主要人群
查看>>
2018年内蒙古外贸首次突破1000亿元
查看>>
CTOR有助于BCH石墨烯技术更上一层楼
查看>>