zoukankan      html  css  js  c++  java
  • 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;
        }


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


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

  • 相关阅读:
    PAT (Advanced Level) Practice 1071 Speech Patterns (25分)
    PAT (Advanced Level) Practice 1070 Mooncake (25分)
    PAT (Advanced Level) Practice 1069 The Black Hole of Numbers (20分)
    PAT (Advanced Level) Practice 1074 Reversing Linked List (25分)
    PAT (Advanced Level) Practice 1073 Scientific Notation (20分)
    第一次冲刺个人总结01
    构建之法阅读笔记01
    人月神话阅读笔记01
    四则运算2
    学习进度条(软件工程概论1-8周)
  • 原文地址:https://www.cnblogs.com/yanhuanghero/p/3373943.html
Copyright © 2011-2022 走看看