• Spring整合Mybatis


    前言:

    在现代的软件开发中,数据库连接和数据访问是每个应用程序都必须面对的核心问题之一。为了有效地管理数据库连接并执行各种数据库操作,开发人员经常会选择使用一些成熟的技术和工具。本文将介绍如何利用 JDBC、MyBatis 和 Druid 数据库连接池来实现数据库连接管理和数据访问功能,从而帮助开发人员更好地构建稳健的应用程序。

    1.引入jdbc和mybatis和druid数据库连接池的依赖

    1. <dependency>
    2. <groupId>com.alibabagroupId>
    3. <artifactId>druidartifactId>
    4. <version>1.2.16version>
    5. dependency>
    6. <dependency>
    7. <groupId>org.mybatisgroupId>
    8. <artifactId>mybatisartifactId>
    9. <version>3.5.14version>
    10. dependency>
    11. <dependency>
    12. <groupId>mysqlgroupId>
    13. <artifactId>mysql-connector-javaartifactId>
    14. <version>8.0.33version>
    15. dependency>
    16. <dependency>
    17. <groupId>org.springframeworkgroupId>
    18. <artifactId>spring-jdbcartifactId>
    19. <version>5.3.30version>
    20. dependency>
    21. <dependency>
    22. <groupId>org.mybatisgroupId>
    23. <artifactId>mybatis-springartifactId>
    24. <version>3.0.3version>
    25. dependency>

    2.生成数据库的的dataSoure实现数据库之间的连接管理和数据访问功能

    1. public class JdbcConfig {
    2. @Value("${jdbc.driver}")
    3. private String driver;
    4. @Value("${jdbc.url}")
    5. private String url;
    6. @Value("${jdbc.username}")
    7. private String username;
    8. @Value("${jdbc.password}")
    9. private String password;
    10. @Bean//配置一个DataSource
    11. public DataSource dataSource(){
    12. DruidDataSource ds = new DruidDataSource();
    13. ds.setDriverClassName(driver);
    14. ds.setUrl(url);
    15. ds.setUsername(username);
    16. ds.setPassword(password);
    17. return ds;
    18. }
    19. }

    3.整合mybatis的两个核心对象交给Ioc进行管理

    1. //Spring整合mybatis
    2. public class MybatisConfig {
    3. @Bean//负责连接数据库,还负责管理MyBatis的各种配置信息,执行sql语句
    4. public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
    5. SqlSessionFactoryBean ssf = new SqlSessionFactoryBean();
    6. ssf.setTypeAliasesPackage("org.example.config.entity");//设置类型别名的包(得到到数据封装到哪个javabean)
    7. ssf.setDataSource(dataSource);//连接数据库的dataSource
    8. return ssf;
    9. }
    10. @Bean//Spring框架中用于自动扫描和注册MyBatis Mapper接口的类。
    11. public MapperScannerConfigurer mapperScannerConfigurer(){
    12. MapperScannerConfigurer msc = new MapperScannerConfigurer();
    13. msc.setBasePackage("org.example.dao");//配置映射所在的包
    14. return msc;
    15. }
    16. }

    4.书写数据层的代码

    1. package org.example.dao;
    2. import org.apache.ibatis.annotations.*;
    3. import org.example.entity.Account;
    4. import java.util.List;
    5. @Mapper
    6. public interface AccountDao {
    7. @Insert("INSERT INTO spring_study.account (name, money) VALUES ('John', 1000);")
    8. void save(Account account);
    9. @Update("UPDATE spring_study.account SET name = #{name}, money = #{money} WHERE id = #{id};")
    10. void update(Account account);
    11. @Delete("DELETE FROM spring_study.account WHERE id = #{id};")
    12. void delete(Account account);
    13. @Select("SELECT * FROM spring_study.account where id = #{id};")
    14. Account findById(int id);
    15. @Select("SELECT * FROM spring_study.account;")
    16. List findAll();
    17. }

    5.使用spring核心容器调用

    1. public class App {
    2. public static void main(String[] args) {
    3. ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
    4. AccountDao accountDao = context.getBean(AccountDao.class);
    5. Account a = accountDao.findById(2);
    6. System.out.println(a);
    7. }
    8. }

    总结:

    通过本文的介绍,我们了解了如何使用 JDBC、MyBatis 和 Druid 数据库连接池来实现数据库连接管理和数据访问功能。首先,我们引入了相应的依赖,包括 Druid、MyBatis 和 MySQL 连接驱动等。然后,我们创建了一个 JdbcConfig 类来配置数据源,并通过注解 @Bean 将数据源交给 Spring IoC 容器管理。接着,我们利用 MyBatisConfig 类来整合 MyBatis,并配置了 SqlSessionFactoryBean 和 MapperScannerConfigurer,以便在 Spring 中管理 MyBatis 的核心对象和 Mapper 接口。

    通过这些步骤,我们成功地搭建了一个基于 JDBC、MyBatis 和 Druid 的数据库连接和数据访问框架,为应用程序提供了可靠的数据库支持。这种整合能够有效地简化开发过程,提高代码的可维护性和可扩展性,是构建高性能、稳健的应用程序的重要组成部分。

  • 相关阅读:
    【Android知识笔记】UI体系(三)
    MOD8ID加密芯片的使用以及示例讲解
    采用XML作为GUI描述语言
    几个常用的开源数学公式生成软件
    枚举类 typede fmalloc 函数   free 函数 位运算
    vue3中el-tree设置默认选中节点和展开节点
    柔性数组笔记
    【C语言刷题】Leetcode268丢失的数字
    [汇编语言实验]查看CPU和内存,用机器指令和汇编指令编程
    探讨Socks5代理IP在跨境电商与网络游戏中的网络安全应用
  • 原文地址:https://blog.csdn.net/m0_74749208/article/details/138869001