zoukankan      html  css  js  c++  java
  • Spring整合Mybatis的方式一

    1.在Spring的配置文件当中编写数据源

          <!--DataSource数据源:使用Spring的数据源替换Mybatis的配置-->
        <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
            <property name="username" value="root"/>
            <property name="password" value="333"/>
        </bean>
    

    2.编写SqlSessionFactory(可以绑定Mybatis的资源文件:推荐这么操作,这样使得mybatis的配置文件当中代码减少只需要保留一些基础的设置)

         <!--SqlSessionFactory-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="datasource" />
            <!--绑定Mybatis的配置文件-->
            <property name="configLocation" value="classpath:Mybatis-config.xml"/>
            <property name="mapperLocations" value="classpath:com/sqx/dao/*.xml"/>
        </bean>
    

    3.编写SqlSessionTemplate(等价于SqlSession)

      <!--SqlSessionTemplate-->
        <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"><!--构造器注入-->
            <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
        </bean>
    

    4.编写Mapper接口的实现类,设置一个属性SqlSessionTemplate的属性和对应的set方法,以及对方法的重写

    public class UserMapperImpl implements UserMapper {
        private SqlSessionTemplate sqlSession;
    //以前我们的操作全在sqlSession中执行,现在全在SqlSessionTemplate当中执行
        public void setSqlSession(SqlSessionTemplate sqlSession) {
            this.sqlSession = sqlSession;
        }
    
        public List<User> queryUsers() {
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            return mapper.queryUsers();
        }
    }
    
    

    5.将接口的实现类托管给Spring(注册在Spring的配置文件当中)

    <bean id="userMapper" class="com.sqx.dao.UserMapperImpl">
            <property name="sqlSession" ref="sqlSession"/>
     </bean>
    

    6.测试的时候可以直接调用实现类的方法即可

        @Test
        public void queryUsersTest(){
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
            List<User> userList = userMapper.queryUsers();
            for (User user : userList) {
                System.out.println(user);
            }
        }
    

    最后一般是团队合作开发可以把Spring配置文件全部整合到一个配置文件当中即可
    在这里插入图片描述
    总结:这样做尽管多出了一个接口的实现类,但是仍然是利大于弊的,因为使得项目层次更加清晰,也是IOC的思想

  • 相关阅读:
    中金所期货(future)指数
    Nginx负载均衡算法之四
    WSGI协议
    Flask 响应之定制全局有效的错误页面,之设置cookie,头信息。
    Python数据结构之栈,队列和堆
    三、Oracle 游标、存储过程、存储函数、触发器
    二、Oracle的结构学习
    一、Oracle的SQL语句学习
    oracle中的修改表结构
    eclipse编写xml文件时类名的自动补全(使用sts插件)
  • 原文地址:https://www.cnblogs.com/qxsong/p/14321069.html
Copyright © 2011-2022 走看看