当前位置:Gxlcms > 数据库问题 > MyBatis3-SqlSessionDaoSupport的使用

MyBatis3-SqlSessionDaoSupport的使用

时间:2021-07-01 10:21:17 帮助过:20人阅读

com.jsoft.testmybatis.dao; import java.util.List; import com.jsoft.testmybatis.models.Article; public interface UserDAO { public List<Article> getUserArticles(int userid); }
  1. <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.jsoft.testmybatis.dao;
  2. </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.List;
  3. </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.apache.ibatis.session.SqlSessionFactory;
  4. </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.mybatis.spring.support.SqlSessionDaoSupport;
  5. </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.beans.factory.annotation.Autowired;
  6. </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.beans.factory.annotation.Qualifier;
  7. </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.stereotype.Repository;
  8. </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> com.jsoft.testmybatis.models.Article;
  9. @Repository
  10. </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> UserDAOImpl <span style="color: #0000ff;">extends</span> SqlSessionDaoSupport <span style="color: #0000ff;">implements</span><span style="color: #000000;"> UserDAO {
  11. @Autowired(required </span>= <span style="color: #0000ff;">false</span><span style="color: #000000;">)
  12. @Qualifier(</span>"sqlSessionFactory"<span style="color: #000000;">)
  13. </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
  14. </span><span style="color: #0000ff;">super</span><span style="color: #000000;">.setSqlSessionFactory(sqlSessionFactory);
  15. }
  16. @Override
  17. </span><span style="color: #0000ff;">public</span> List<Article> getUserArticles(<span style="color: #0000ff;">int</span><span style="color: #000000;"> userid) {
  18. </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">this</span>.getSqlSession().selectList("com.jsoft.testmybatis.inter.IUserOperation.getUserArticles"<span style="color: #000000;">, userid);
  19. }
  20. }</span>

执行的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中配置如下:

  1. <span style="color: #0000ff;"><?</span><span style="color: #ff00ff;">xml version="1.0" encoding="UTF-8"</span><span style="color: #0000ff;">?></span>
  2. <span style="color: #0000ff;"><</span><span style="color: #800000;">beans </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.springframework.org/schema/beans"</span><span style="color: #ff0000;">
  3. xmlns:xsi</span><span style="color: #0000ff;">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000;">
  4. xmlns:p</span><span style="color: #0000ff;">="http://www.springframework.org/schema/p"</span><span style="color: #ff0000;">
  5. xmlns:context</span><span style="color: #0000ff;">="http://www.springframework.org/schema/context"</span><span style="color: #ff0000;">
  6. xmlns:mvc</span><span style="color: #0000ff;">="http://www.springframework.org/schema/mvc"</span><span style="color: #ff0000;">
  7. xsi:schemaLocation</span><span style="color: #0000ff;">="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd
  11. http://www.springframework.org/schema/mvc
  12. http://www.springframework.org/schema/mvc/spring-mvc.xsd"</span><span style="color: #0000ff;">></span>
  13. <span style="color: #0000ff;"><</span><span style="color: #800000;">context:component-scan </span><span style="color: #ff0000;">base-package</span><span style="color: #0000ff;">="com.jsoft.testmybatis.controller"</span> <span style="color: #0000ff;">/></span>
  14. <span style="color: #ff0000;"><strong><context:component-scan base-package="com.jsoft.testmybatis.dao" /></strong></span>
  15. <span style="color: #0000ff;"><</span><span style="color: #800000;">context:annotation-config </span><span style="color: #0000ff;">/></span>
  16. <span style="color: #0000ff;"><</span><span style="color: #800000;">bean </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="org.springframework.web.servlet.view.InternalResourceViewResolver"</span><span style="color: #0000ff;">></span>
  17. <span style="color: #0000ff;"><</span><span style="color: #800000;">property </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="prefix"</span><span style="color: #0000ff;">></span>
  18. <span style="color: #0000ff;"><</span><span style="color: #800000;">value</span><span style="color: #0000ff;">></span>/WEB-INF/jsp/<span style="color: #0000ff;"></</span><span style="color: #800000;">value</span><span style="color: #0000ff;">></span>
  19. <span style="color: #0000ff;"></</span><span style="color: #800000;">property</span><span style="color: #0000ff;">></span>
  20. <span style="color: #0000ff;"><</span><span style="color: #800000;">property </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="suffix"</span><span style="color: #0000ff;">></span>
  21. <span style="color: #0000ff;"><</span><span style="color: #800000;">value</span><span style="color: #0000ff;">></span>.jsp<span style="color: #0000ff;"></</span><span style="color: #800000;">value</span><span style="color: #0000ff;">></span>
  22. <span style="color: #0000ff;"></</span><span style="color: #800000;">property</span><span style="color: #0000ff;">></span>
  23. <span style="color: #0000ff;"></</span><span style="color: #800000;">bean</span><span style="color: #0000ff;">></span>
  24. <span style="color: #0000ff;"></</span><span style="color: #800000;">beans</span><span style="color: #0000ff;">></span>

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

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

  1. <span style="color: #000000;"> @Autowired
  2. UserDAO userDAO;
  3. @RequestMapping(</span>"/daolist"<span style="color: #000000;">)
  4. </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> ModelAndView listalldao(HttpServletRequest request,HttpServletResponse response){
  5. List</span><Article> articles=userDAO.getUserArticles(1<span style="color: #000000;">);
  6. ModelAndView mav</span>=<span style="color: #0000ff;">new</span> ModelAndView("/article/list"<span style="color: #000000;">);
  7. mav.addObject(</span>"articles"<span style="color: #000000;">,articles);
  8. </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> mav;
  9. }</span>

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

技术分享

 

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

MyBatis3-SqlSessionDaoSupport的使用

标签:scan   集成   ret   ber   github   html   span   spring   ppi   

人气教程排行