首页 > 其他分享 >Spring整合Mybatis

Spring整合Mybatis

时间:2023-07-17 20:11:06浏览次数:25  
标签:building1 5.3 Spring mybatis 整合 spring Mybatis org

一. 引入Spring等相关依赖

 <dependencies>
       <!--版本建议换成提示的更安全的版本-->
        <!-- mybatis插件 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        <!--mysql相关依赖  -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
        </dependency>
        <!--单元测试依赖  -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
        <!--lombok插件-->
        <!--写实体类时方便生成相关的get/set/构造器等方法-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.18</version>
        </dependency>
        <!-- PageHelper 分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.3.3</version>
        </dependency>
     
      <!--新增加的依赖 -->
     <!-- spring -->
     <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-context</artifactId>
         <version>5.3.28</version>
     </dependency>
     <!-- Spring集合mybatis-->
     <dependency>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis-spring</artifactId>
         <version>2.1.1</version>
     </dependency>
     <!--spring-jdbc-->
     <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-jdbc</artifactId>
         <version>5.3.28</version>
     </dependency>
     <!--数据库连接池-->
     <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>druid</artifactId>
         <version>1.2.18</version>
     </dependency>
    </dependencies>

二. 编写Spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 要配置SqlSessionFactory工厂 bean-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 引入数据源,这里用的是德鲁伊连接池,你也可以选择其他的-->
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" value="扫描你的mapper.xml文件(mappers/*.xml)"/>
       
        <!--加载你的mybatis-config.xml配置文件-->
       <!-- <property name="configLocation" value="mybatis-config.xml"/>  -->
        
        <!-- 注意:configLocation和configuration只能选择其中一个配置,
                 建议使用后者,现在直接可以把mybatis-config.xml删掉了-->
        <property name="configuration">
            <bean class="org.apache.ibatis.session.Configuration">
                <!-- 配置mybatis驼峰命名映射-->
                <property name="mapUnderscoreToCamelCase" value="true"/>
                 <!-- 配置mybatis日志-->
                <property name="logImpl" value="org.apache.ibatis.logging.stdout.StdOutImpl"/>
            </bean>
        </property>
        
        <!-- 配置插件-->
          <property name="plugins">
            <array>
                 <!-- 分页插件-->
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <value>
    <!-- 设置为true时,当页码小于等于0显示第一页,大于最大页码时显示最后一页;默认为false-->
                            reasonable=true
                        </value>
                    </property>
                </bean>
            </array>
        </property>
    </bean>

    <!-- 配置druid数据源  对应上面sqlSessionFactory的dataSource属性-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/数据库"/>
        <property name="username" value="用户名"/>
        <property name="password" value="密码"/>
     </bean>

      <!-- 为单个Mapper接口配置,通过MapperFactoryBean
            能够产生类似Mapper接口的实现类对象,从而能够调用接口中的方法 --> 
  <!--  <bean id="buildingMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
           声明要传入的接口,相当于原材料
        <property name="mapperInterface" value="com.wsl.wy.mapper.BuildingMapper" />
            配置sqlSessionFactory
        <property name="sqlSessionFactory" ref="sqlSessionFactory" />
    </bean>-->
    
      <!-- 单个配置过于繁琐,采用下面的方式可以直接扫描mapper接口所在的包,全部配置-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.wsl.wy.mapper" />
    </bean>

    <!-- 对普通类进行属性注入例子,将其对象交给spring,我们直接从容器中获取,而不采用new的方式-->
    <bean id="buildingService" class="com.wsl.wy.service.impl.BuildingServiceImpl">
         <!-- ref值的解释:当上一层调用下一层的方法时,一般会创建下一层的实现类对象从而调用方法,
         然我们现在不再用new的方式了,而是把他当作自己的属性进行配置,而值也是从容器中拿。因为上面我们配置
         了直接扫描mapper接口所在的包;spring为每个mapper接口配置bean,且默认id为 接口名首字母小写,因此
 		 这里的ref="buildingMapper"
           -->
        <property name="buildingMapper" ref="buildingMapper"/>
    </bean>

</beans>

三. 测试代码

  @Test
    public void testAdd() {
        
        //从容器中获取BuildingServiceImpl对象
        BuildingService service =
                new ClassPathXmlApplicationContext("spring.xml").
                        getBean("buildingService", BuildingService.class);
        Building building1 = new Building();
        building1.setHouseNumber(5);
        //我们就可以调用BuildingService实现类里的方法了
        service.addABuilding(building1);

    }

标签:building1,5.3,Spring,mybatis,整合,spring,Mybatis,org
From: https://www.cnblogs.com/ws-lin/p/spring_mybatis.html

相关文章

  • Spring循环依赖
     转自:https://blog.csdn.net/yueyezhufeng/article/details/126371612?ops_request_misc=&request_id=&biz_id=102&utm_term=Spring%E5%BE%AA%E7%8E%AF%E5%BC%95%E7%94%A8%E6%B5%81%E7%A8%8B%E5%9B%BE&utm_medium=distribute.pc_search_result.none-task-blog-......
  • 【Spring】零散
    如何扩展XML自定义标签:参考springcore.pdf中10.2XMLSchemaAuthoring章节(含具体样例)1.AuthoranXMLschematodescribeyourcustomelement(s).2.CodeacustomNamespaceHandlerimplementation.3.CodeoneormoreBeanDefinitionParserimplementations(thisiswh......
  • Spring框架中的设计模式(重点学习!!!)
    Spring中的设计模式Spring框架中用到的设计模式有很多,以下是一些常见的设计模式:依赖注入(DI)和控制反转(IoC):这是Spring框架最核心的设计模式,它允许开发人员将对象之间的依赖关系从代码中抽离出来,由Spring容器负责管理和注入对象之间的依赖关系。工厂模式:Spring框架中的BeanFactor......
  • Spring项目中策略模式使用
    一、策略模式定义策略模式(StrategyPattern)是行为型策略模式当中的一种,定义一系列算法,将每个算法封装到具有公共接口的一系列策略类中,(可以是抽象类,也可以是接口),从而使他们可以相互替换,让算法可在不影响客户端的情况下发生变化,作用:将算法的责任和本身进行解耦,使得:1、算法可独立......
  • Statement not bound, 使用MybatisPlus时的SqlSessionFactory和MybatisSqlSessionFact
    最近首次在真实项目中,实践用SpingBoot整合Mybatis、MybatisPlus、Spring、多数据源等常见SSH整合问题。遇到一个难题,MybatisPlus遇到了经典的问题“Statementnotbound”。如果是Mybatis,很容易解决,扫描到Mapper接口文件和Mapper.xml文件,肯定能搞定。这次整合进了MybatisPlus,之前......
  • SSM整合(功能模块开发)
    packagecom.itheima.domain;publicclassBook{privateIntegerid;privateStringtype;privateStringname;privateStringdescription;@OverridepublicStringtoString(){return"Book{"+&qu......
  • SpringMVC文件上传
    相关依赖使用SpringMVC提供的文件上传需要在项目中加入两个jar包,对应的maven的依赖分别是:commons-io和commons-fileupload<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dep......
  • spring中的bean对象的有关了解
    @ConfigurationpublicclassAppConfig{@BeanpublicMyBeangetMyBean(){MyBeanmyBean=newMyBean();myBean.setName("Example");returnmyBean;}//其他的@Bean方法...}上述是一个配置类,里面有个@Bean注解修饰,@Configuration注解的类......
  • springboot相较之前ssm有什么区别和优势
    1、快速可搭建的脚手架,少量配置,约定优于配置,不用像ssm那样增加复杂的配置文件2、这种方式使程序员更加集中于业务代码的编写,而不用关注部署和容器配置的问题3、约定优于配置也不是任何场景都适用,主要还是免去了servlet的配置4、内置tomcat直接启动......
  • Spring 整合Redis
    1.配置application.ymlspring:application:name:meter-highwayprofiles:active:druid,mongodb,dubbo,rabbitmq,redisapplication-redis.ymlspring:redis:database:9host:192.168.13.146port:6379password:Luban376timeout:20002.依赖<dependency>......