Spring的注解开发-注解方式整合MyBatis代码实现

这篇具有很好参考价值的文章主要介绍了Spring的注解开发-注解方式整合MyBatis代码实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 之前使用xml方式整合了MyBatis,文章导航:Spring整合第三方框架-MyBatis整合Spring实现-CSDN博客
    现在使用注解的方式无非是就是将xml标签替换为注解,将xml配置文件替换为配置类而已。
    • 非自定义配置类
    • package com.example.Configure;
      
      import com.alibaba.druid.pool.DruidDataSource;
      import com.example.Beans.otherBeans;
      import org.mybatis.spring.SqlSessionFactoryBean;
      import org.mybatis.spring.annotation.MapperScan;
      import org.springframework.beans.factory.annotation.Value;
      import org.springframework.context.annotation.*;
      
      import javax.sql.DataSource;
      
      @Configuration // todo 标注当前类是一个配置类(替代配置文件)、其中包含@Compoent注解
      // <context:component-scan base-package="com.example"/>
      @ComponentScan({"com.example"})
      
      // <context:property-placeholder location="jdbc.properties"/>
      @PropertySource("jdbc.properties")
      
      // <import resource=""/>
      @Import(otherBeans.class)
      
      // Mapper接口扫描
      @MapperScan("com.example.Mapper")
      public class SpringConfig {
          @Bean  // 将非自定义的bean对象交给Spring容器管理
          public DataSource dataSource(@Value("${jdbc.driver}") String driver,
                                       @Value("${jdbc.url}") String url,
                                       @Value("${jdbc.username}") String username,
                                       @Value("${jdbc.password}") String password) {
              DruidDataSource dataSource = new DruidDataSource();
              dataSource.setDriverClassName(driver);
              dataSource.setUrl(url);
              dataSource.setUsername(username);
              dataSource.setPassword(password);
              return dataSource;
          }
      
          @Bean
          public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
              SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
              sqlSessionFactoryBean.setDataSource(dataSource);
              return sqlSessionFactoryBean;
          }
      
      
      }
      

                与数据库建立连接的同时,扫描指定的mapper接口,实现实现数据库的操作

  • mapper接口类以及其对应的xml配置文件
    • package com.example.Mapper;
      
      import com.example.pojo.Emp;
      import org.springframework.stereotype.Repository;
      
      import java.util.List;
      
      @Repository
      public interface EmpMapper {
          List<Emp> findAll();
      }
      
    • <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE mapper
              PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      <mapper namespace="com.example.Mapper.EmpMapper">
          <select id="findAll" resultType="com.example.pojo.Emp">
              select *
              from tb_emp;
          </select>
      </mapper>
    • 业务层调用持久层

    • package com.example.Service.Impl;
      
      
      import com.example.Mapper.EmpMapper;
      import com.example.Service.UserService;
      import com.example.pojo.Emp;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.stereotype.Service;
      
      import java.util.List;
      
      @Service("userService")
      public class UserServiceImpl implements UserService {
          @Autowired
          private EmpMapper empMapper;
      
          @Override
          public void show() {
              List<Emp> empList = empMapper.findAll();
              for (Emp emp : empList) {
                  System.out.println(emp);
              }
          }
      
      
      }
      

      上述中直接注入的mapper接口类

    • 测试代码

    • package com.example.Test;
      
      
      import com.example.Configure.SpringConfig;
      import com.example.Service.UserService;
      import org.springframework.context.ApplicationContext;
      import org.springframework.context.annotation.AnnotationConfigApplicationContext;
      
      public class TestApplicationContext {
          public static void main(String[] args) {
              // 注解方式加载Spring容器的核心配置类
              ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
              UserService bean = context.getBean(UserService.class);
              bean.show();
          }
      }
      
      
    • 运行结果如下:

    • Spring的注解开发-注解方式整合MyBatis代码实现,Spring 5,spring,mybatis,tomcat
       

  • 小结

  • 用注解的方式整合第三方框架,以MyBatis框架为例,首先得与数据库建立连接的操作由配置文件转换为配置类,使用@Bean注解,Spring框架会自动调用这两个方法,并生成对应的bean对象交给Spring容器管理,与数据库成功建立连接。然后在业务层直接注入Mapper接口对象,调用其中的方法,实现对于数据库的操作。文章来源地址https://www.toymoban.com/news/detail-729396.html

到了这里,关于Spring的注解开发-注解方式整合MyBatis代码实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring整合RabbitMQ-注解方式

    maven导入 5.2.1 消息的生产者 RabbitConfig 提示: ConnectionFactory有三个实现 CachingConnectionFactory 基于channel的缓存模式 最常用是这个。 LocalizedQueueConnectionFactory 直接连接某个节点的方式。如果是集群,此种不太适合。 SimpleRoutingConnectionFactory 在当前的连接工厂中按查找的KEY获取连接

    2024年02月09日
    浏览(28)
  • Spring+SprinMVC+MyBatis注解方式简易模板

    Spring+SprinMVC+MyBatis注解方式简易模板代码Demo GitHub访问 ssm-tpl-anno 创建数据库test,执行下方SQL创建表ssm-tpl-cfg 一个简单的基于注解的增删改查就实现了

    2024年01月23日
    浏览(28)
  • MyBatis与Spring集成&常用注解以及AOP和PageHelper分页插件整合

    目录 前言 一、MyBatis与Spring整合的好处以及两者之间的关系 1.好处 2.关系  二、MyBatis和Spring集成 1.导入pom.xml 2.编写配置文件  3.利用mybatis逆向工程生成模型层代码 三、常用注解  四、AOP整合pageHelper分页插件 创建一个切面 测试 MyBatis是一个开源的持久层框架,而Spring是一个

    2024年02月07日
    浏览(29)
  • Spring整合Mybatis方式一 - 常规整合 - 注册映射器

    导包( mybatis-spring 、mysql-connector-java、mybatis、spring-webmvc等) 实体类 DAO层两个文件(接口、xml文件);Service层的接口 第一种:xml 第二种:annotation方式 点击查看代码 MapperFactoryBean注册映射器的最大问题,就是需要一个个注册所有的映射器,而实际上mybatis-spring提供了扫描包

    2024年03月27日
    浏览(31)
  • Spring xml 方式整合mybatis 第三方框架

    MyBatis提供了mybatis-spring.jar专门用于两大框架的整合。 ①:第一步: 导入MyBatis整合Spring的相关坐标; ②:第二步: 编写Mapper和Mapper.xml ③:第三步: 配置SqlSessionFactoryBean和MapperScannerConfigurer ④:第四步: 编写测试代码

    2024年02月13日
    浏览(41)
  • Spring Boot学习随笔- 集成JSP模板(配置视图解析器)、整合Mybatis(@MapperScan注解的使用)

    学习视频:【编程不良人】2021年SpringBoot最新最全教程 在main创建webapp,然后创建index.jsp进行测试,在访问之前需要进行一个设置,否则springboot是找不到jsp页面的 修改jsp无需重启应用 数据库访问框架:hibernate、jpa、mybatis【主流】 SpringBoot(微框架) = Spring(工厂) + SpringMV

    2024年02月05日
    浏览(31)
  • 51、基于注解方式开发Spring WebFlux,实现生成背压数据,就是实现一直向客户端发送消息

    什么是背压: 这个是Reactive(反应) 的概念,当订阅者的消费能力,远低于发布者时,订阅者(也就是消费者)有通知取消或终止发布者生产数据的机制,这种机制可以称作为“背压”。 说白了就是:当消费者消费积压的时候,反向告诉推送生产者,我不需要你生产了,你

    2024年02月09日
    浏览(32)
  • SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第五天)MyBatis的注解开发

    ​ 昨天我们深入学习了 MyBatis多表之间的关联映射,了解掌握了一对一关联映射,一对多关联映射,嵌套查询方式以及嵌套结果方式,掌握了缓存机制的一级缓存,二级缓存等概念,也使用了代码进行复现理解 。但是都是基于XML配置文件的方式来实现的,现在我们要学习一下

    2024年02月11日
    浏览(41)
  • Spring+SpringMVC+MyBatis整合项目开发(配有项目,已开源)

    🍰 个人主页:__Aurora__ 🍞 如果文章有什么需要改进的地方还请各位大佬斧正。 🍉如果我的文章对你有帮助➡️ 关注🙏🏻 点赞👍 收藏⭐️ 🔥最近在学SSM框架,本文是根据b站【黑马程序员 ssm框架 2021 版】整理。 🔥视频链接:https://www.bilibili.com/video/BV1WZ4y1P7Bp?spm_id_from=3

    2023年04月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包