广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Spring利用注解整合Mybatis的方法详解
  • 108
分享到

Spring利用注解整合Mybatis的方法详解

2024-04-02 19:04:59 108人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、环境准备步骤1:数据库相关步骤2:导入jar包步骤3:创建模型类步骤4:创建Dao接口和实现类步骤5:创建Service接口和实现类步骤6:添加jdbc.properties

一、环境准备

步骤1:数据库相关

建库建表

创建spring_db数据库,tb_user表

create database spring_db character set utf8;
use spring_db;
create table tb_user(
    id int primary key auto_increment,
    name varchar(35),
    age int
);

插入数据

添加几条实验数据

INSERT INTO spring_db.tb_user (name, age) VALUES ('bighorn', 18);
INSERT INTO spring_db.tb_user (name, age) VALUES ('大角牛', 20);
INSERT INTO spring_db.tb_user (name, age) VALUES ('倔强的牛角', 100);

步骤2:导入jar包

创建Maven工程,在pom.xml文件导入相关依赖

    <dependencies>
        <dependency>
            <!--springframework框架-->
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
        <!--jdk9 以后需要导的注解依赖-->
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!--Mybatis依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.9</version>
        </dependency>
        <!--Druid连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>
        <!--Mysql 驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

步骤3:创建模型类

根据tb_user表字段,创建User模型类

public class User {
    private Integer id;
    private String name;
    private Integer age;
   //省略setter和getter方法
}

步骤4:创建Dao接口和实现类

创建简单的UserDao接口UserDaoImpl实现类,里面就一个查询方法。


public interface UserDao {
    @Select("select * from tb_user where id = #{id} ")
    User findById(Integer id);
}

@Repository
public class UserDaoImpl implements UserDao {
    @Override
    public User findById(Integer id) {
        return null;
    }
}

步骤5:创建Service接口和实现类

创建简单的UserService接口UserServiceImpl实现类


public interface UserService {
    void findById(Integer id);
}

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao userDao;

    @Override
    public void findById(Integer id) {
        User user = userDao.findById(id);
        System.out.println("id为" + id + "的用户姓名:" + user.getName());
        System.out.println("id为" + id + "的用户年龄:" + user.getAge());
    }
}

步骤6:添加jdbc.properties文件

resources目录下添加jdbc.properties文件,用于配置数据库连接四要素

# 注册驱动,可以缺省,会根据url自动识别
jdbc.driver=com.mysql.cj.jdbc.Driver
# 数据库连接地址
jdbc.url=jdbc:mysql://localhost:3306/spring_db
# 数据库管理员名称
jdbc.username=root
# 数据库密码
jdbc.passWord=123456

步骤7:添加Mybatis核心配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "Http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--读取properties配置文件-->
    <properties resource="jdbc.properties"/>
    <!--别名扫描的包路径-->
    <typeAliases>
        <package name="com.bighorn.pojo"/>
    </typeAliases>
    <!--配置数据源-->
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--映射文件扫描包路径-->
    <mappers>
        <package name="com.bighorn.dao"/>
    </mappers>
</configuration>

步骤8:编写测试程序

public static void main(String[] args) throws IOException {
    //1.加载mybatis的核心配置文件
    InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
    //2.获取 SqlSessionFactory对象
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    //3. 获取SqlSession对象,用它来执行sql
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //4.获取userMapper接口的代理对象
    UserDao userDao = sqlSession.getMapper(UserDao.class);
    //5.执行查询,获取结果User
    User user = userDao.findById(1);
    System.out.println(user);
    //6. 释放资源
    sqlSession.close();
}

运行结果截图

说明环境配置没有问题

二、整合思路分析

以上流程可以全部移交给Spring来处理

其中有两个重要的整合

  • Spring要管理MyBatis中的SqlSessionFactory
  • Spring要管理Mapper接口的扫描

注解整合 MyBatis 的开发步骤

  • 修改 mybatis 外部配置文件格式为注解格式;
  • 业务类使用 @Component 或其衍生注解声明 bean,使用 @Autowired 注入对象;
  • 建立配置文件 DataSourceConfig与 MyBatisConfig 类,并将其导入到核心配置类 SprinGConfig;
  • 开启注解扫描;
  • 使用 AnnotationConfigApplicationContext 对象加载配置项。

三、整合步骤

步骤1:导入整合jar包

mybatis-spring是Mybatis提供的Spring与Mybatis整合的jar包

<dependency>
    <!--Spring操作数据库需要该jar包-->
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.2.10.RELEASE</version>
</dependency>
<dependency>
    <!--
  Mybatis提供的Spring与Mybatis整合的jar包
 -->
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.0</version>
</dependency>

步骤2:创建数据源配置类

创建DataSourceConfig类,完成Druid数据源的创建


// 加载jdbc.properties配置文件
@PropertySource("classpath:jdbc.properties")
public class DataSourceConfig {
    //用SpEl表达式将属性注入
    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;
    // 将方法的返回值放置Spring容器中
    @Bean("druidDataSource")
    public DruidDataSource getDataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driver);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}

步骤3:创建Mybatis配置类

主要是让Spring管理两个第三方BeanSqlSessionFactoryBeanMapperScannerConfigurer

说明:

SqlSessionFactoryBean是FactoryBean的一个子类,也是mybatis-spring整合jar包中的类,该类将SqlSessionFactory的创建进行了封装,简化对象的创建,

MapperScannerConfigurer也是MyBatis提供的整合jar包中的类,用来处理原始mapper映射文件相关配置,加载数据层的Mapper(Dao)接口类。核心属性basePackage,就是用来设置所扫描的包路径


public class MybatisConfig {
    //定义bean:SqlSessionFactoryBean,用于产生SqlSessionFactory对象
    @Bean
    public SqlSessionFactoryBean sqlSessionFactory(@Autowired DataSource dataSource){
        SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
        //设置模型类的别名扫描
        ssfb.setTypeAliasesPackage("com.bighorn.pojo");
        //设置数据源
        ssfb.setDataSource(dataSource);
        return ssfb;
    }
    //定义bean,返回MapperScannerConfigurer对象
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer(){
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
        msc.setBasePackage("com.bighorn.dao");
        return msc;
    }
}

步骤4:创建Spring主配置类

创建SpringConfig类,开启注解扫描、引入外部配置类(数据源配置类和Mybatis配置类)


//配置类注解
@Configuration
//开启注解扫描功能
@ComponentScan("com.bighorn")
//引入数据源配置类和Mybatis配置类
@Import({DataSourceConfig.class,MybatisConfig.class})
public class SpringConfig {

}

步骤5:编写运行程序

在运行类中,从ioc容器中获取UserService对象,调用其方法

public static void main(String[] args) throws SQLException {
    //获取配置类初始化容器
    ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
    //从容器中获取UserService对象
    UserService userService = context.getBean(UserService.class);
    //调用service的方法
    userService.findById(3);
}

运行结果如下

说明Spring整合Mybatis成功辣!

以上就是Spring利用注解整合Mybatis的方法详解的详细内容,更多关于Spring注解整合Mybatis的资料请关注编程网其它相关文章!

--结束END--

本文标题: Spring利用注解整合Mybatis的方法详解

本文链接: https://www.lsjlt.com/news/151111.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring利用注解整合Mybatis的方法详解
    目录一、环境准备步骤1:数据库相关步骤2:导入jar包步骤3:创建模型类步骤4:创建Dao接口和实现类步骤5:创建Service接口和实现类步骤6:添加jdbc.properties...
    99+
    2022-11-13
  • Spring Boot 利用注解方式整合 MyBatis
    目录前言整合过程新建 Spring Boot 项目添加 pom 依赖准备数据库pojo 层dao 层service 层controller 层入口程序配置网页测试总结前言 目前而言,...
    99+
    2022-11-13
  • Spring Boot如何利用注解方式整合MyBatis
    今天小编给大家分享一下Spring Boot如何利用注解方式整合MyBatis的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2023-06-30
  • 详解Spring与MyBatis的整合的方法
    目录一、问题提出二、解决方案三、MyBatis逆向工程pom文件generatorConfig.xml四、Spring与mybatis的配置文件主模块依赖jar包spring-per...
    99+
    2022-11-13
  • SpringBoot整合mybatis的方法详解
    目录1 依赖配置2 使用2.1 SpringBoot配置整合mybatis:2.2 SpringBoot注解整合mybatis:2.3 在配置类上增加@MapperScan注解,扫描...
    99+
    2022-11-13
  • 详解Spring如何整合Mybatis
    第一步 导入相关jar包 <dependencies> <!--连接mysql--> <!-- https://mvnreposit...
    99+
    2022-11-12
  • Spring和Mybatis整合的原理详解
    目录前言简单猜想案例搭建通过扫描接口正式开始setBeanNamesetApplicationContextafterPropertiespostProcessBeanDefinit...
    99+
    2022-11-13
  • Spring Boot整合Lombok的方法详解
    上篇文章给大家介绍了,喜欢的朋友点击查看下。 SpringBoot 开发提速神器 Lombok+MybatisPlus+SwaggerUI Lombok为啥这么牛逼?Spri...
    99+
    2022-11-12
  • MyBatis-Plus详细讲解(整合spring Boot)
    哈喽,大家好,今天带大家了解的是MyBatis-Plus(简称 MP),是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 首先说一下MyBatis-Plus的愿景是什么? My...
    99+
    2023-10-20
    spring boot 数据库 mysql MyBatis-Plus 框架整合 Powered by 金山文档
  • spring Boot与Mybatis整合优化详解
    SpringBoot官方文档http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/关于spring-boot与mybatis整合优化方面的介绍,就是Mybat...
    99+
    2023-05-31
    spring boot mybatis
  • 纯注解版spring与mybatis的整合过程
    今天给大家分享纯注解版spring与mybatis的整合 mybatis包下:有这几个,上面图片没有展开 配置Bean:MyBatisAutoConfiguration ...
    99+
    2022-11-13
  • Spring Boot 利用 XML 方式整合 MyBatis
    目录一、前言二、整合过程新建 Spring Boot 项目添加 pom 依赖准备数据库pojo 层dao 层service 层controller 层入口程序配置网页测试总结一、前言...
    99+
    2022-11-13
  • Spring整合Mybatis 扫描注解创建Bean报错的解决方案
    目录Spring整合Mybatis 扫描注解创建Bean报错springboot+mybatis使用注解方式,出现错误创建dao层beanSpring整合Mybatis 扫描注解创建...
    99+
    2022-11-12
  • SpringBoot整合Mybatis与MybatisPlus方法详细讲解
    目录一、整合MyBatis操作1、配置模式2、注解模式3、混合模式二、整合 MyBatis-Plus 完成CRUD1、什么是MyBatis-Plus2、整合MyBatis-Plus3...
    99+
    2023-01-28
    SpringBoot整合Mybatis SpringBoot整合MybatisPlus
  • 详解Spring Boot集成MyBatis(注解方式)
    MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。spring Boot是能支持快速创建Spring应用的Java框架。本文通过一个例子来学习Spring B...
    99+
    2023-05-31
    spring boot mybatis
  • Spring Boot怎么利用XML方式整合MyBatis
    本篇内容介绍了“Spring Boot怎么利用XML方式整合MyBatis”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、前言下...
    99+
    2023-06-30
  • spring整合mybatis的方法是什么
    Spring整合MyBatis的方法有以下几种: 使用Spring的XML配置文件进行整合: 在Spring配置文件中配置数据...
    99+
    2023-10-25
    spring mybatis
  • Spring Boot整合Mybatis的配置方法
    这篇文章主要讲解了“Spring Boot整合Mybatis的配置方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Boot整合Mybatis的配置方法”吧!目录配置文件形式p...
    99+
    2023-06-20
  • Spring中bean集合注入的方法详解
    目录Map注入List注入Set注入数组注入应用哈喽大家好啊,我是Hydra。 Spring作为项目中不可缺少的底层框架,提供的最基础的功能就是bean的管理了。bean的注入相信大...
    99+
    2022-11-13
  • 干货必看|Spring Boot整合MyBatis框架详解
    在开发中,我们通常会对数据库的数据进行操作,Sprirng Boot对关系型数据库和非关系型数据库的访问操作都提供了非常好的整合支持。所以今天壹哥就给大家讲解一下,如何在SpringBoot环境中整合Mybatis框架,请大家认真看哦。 一...
    99+
    2023-10-25
    mybatis 数据库 java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作