• mybatis SqlSessionDaoSupport的使用(附代码下载)(转)


    前面的系列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;
        }


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


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

  • 相关阅读:
    C#神奇的扩展方法
    OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用
    xslt格式化日期的方法
    c# 对象存cookie
    Oracle Client安装报错:引用数据不可用于验证此操作系统分发的先决条件
    Web.config中设置启用webservice远程调试访问 参数看不到
    ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
    IIS无法加载字体文件(*.woff,*.svg)的解决办法
    word 里面没输入法
    photoshop cc 2018破解补丁(pscc2018注册机) 附使用方法
  • 原文地址:https://www.cnblogs.com/yanhuanghero/p/3373943.html
Copyright © 2020-2023  润新知