时间:2021-07-01 10:21:17 帮助过:20人阅读
- <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.jsoft.testmybatis.dao;
- </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.List;
- </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.apache.ibatis.session.SqlSessionFactory;
- </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.mybatis.spring.support.SqlSessionDaoSupport;
- </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.beans.factory.annotation.Autowired;
- </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.beans.factory.annotation.Qualifier;
- </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.stereotype.Repository;
- </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> com.jsoft.testmybatis.models.Article;
- @Repository
- </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 {
- @Autowired(required </span>= <span style="color: #0000ff;">false</span><span style="color: #000000;">)
- @Qualifier(</span>"sqlSessionFactory"<span style="color: #000000;">)
- </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
- </span><span style="color: #0000ff;">super</span><span style="color: #000000;">.setSqlSessionFactory(sqlSessionFactory);
- }
- @Override
- </span><span style="color: #0000ff;">public</span> List<Article> getUserArticles(<span style="color: #0000ff;">int</span><span style="color: #000000;"> userid) {
- </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);
- }
- }</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中配置如下:
- <span style="color: #0000ff;"><?</span><span style="color: #ff00ff;">xml version="1.0" encoding="UTF-8"</span><span style="color: #0000ff;">?></span>
- <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;">
- xmlns:xsi</span><span style="color: #0000ff;">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000;">
- xmlns:p</span><span style="color: #0000ff;">="http://www.springframework.org/schema/p"</span><span style="color: #ff0000;">
- xmlns:context</span><span style="color: #0000ff;">="http://www.springframework.org/schema/context"</span><span style="color: #ff0000;">
- xmlns:mvc</span><span style="color: #0000ff;">="http://www.springframework.org/schema/mvc"</span><span style="color: #ff0000;">
- xsi:schemaLocation</span><span style="color: #0000ff;">="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc.xsd"</span><span style="color: #0000ff;">></span>
- <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>
- <span style="color: #ff0000;"><strong><context:component-scan base-package="com.jsoft.testmybatis.dao" /></strong></span>
- <span style="color: #0000ff;"><</span><span style="color: #800000;">context:annotation-config </span><span style="color: #0000ff;">/></span>
- <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>
- <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>
- <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>
- <span style="color: #0000ff;"></</span><span style="color: #800000;">property</span><span style="color: #0000ff;">></span>
- <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>
- <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>
- <span style="color: #0000ff;"></</span><span style="color: #800000;">property</span><span style="color: #0000ff;">></span>
- <span style="color: #0000ff;"></</span><span style="color: #800000;">bean</span><span style="color: #0000ff;">></span>
- <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层方法
- <span style="color: #000000;"> @Autowired
- UserDAO userDAO;
- @RequestMapping(</span>"/daolist"<span style="color: #000000;">)
- </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> ModelAndView listalldao(HttpServletRequest request,HttpServletResponse response){
- List</span><Article> articles=userDAO.getUserArticles(1<span style="color: #000000;">);
- ModelAndView mav</span>=<span style="color: #0000ff;">new</span> ModelAndView("/article/list"<span style="color: #000000;">);
- mav.addObject(</span>"articles"<span style="color: #000000;">,articles);
- </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> mav;
- }</span>
3、整体的项目结构如下:
测试工程:https://github.com/easonjim/5_java_example/tree/master/mybatis/test10
MyBatis3-SqlSessionDaoSupport的使用
标签:scan 集成 ret ber github html span spring ppi