spring-boot-mybatis

一、SpringBoot mybatis使用

1、导入依赖

 

复制代码
<!--导入spring-boot 启动父类-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
    <dependencies>
        <!--mysql 驱动 jdbc的实现-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>
        <!--mybatis以及相关依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!--测试包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.0.1.RELEASE</version>
        </dependency>

    </dependencies>
复制代码

 


2、
配置mybatis

  resources目录下核心配置文件创建,application.properties ,application.yml任选其一。

 

application.properties 

spring.datasource.url=jdbc:mysql://localhost:3306/xc_course
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.type-aliases-package=com.xuecheng.framework.domain.course
mybatis.mapper-locations=classpath:mapper/*Mapper.xml

 

 

application.yml

 

复制代码

spring:
application:
name: spirngbootweb #给spring-application容器的名称
datasource: #数据源
url: jdbc:mysql://192.168.79.129:3306/myself #数据库url
username: root #数据库用户名
password: root123 #数据库密码
driver-class-name: com.mysql.cj.jdbc.Driver #myslq驱动
#driver-class-name: com.mysql.jdbc.Driver # myslq驱动 旧路径
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml #mybatis映射文件所在位置,这里对应resource/mapper/*Mapper.xml
type-aliases-package:
 
复制代码

 

 

 

 

3、创建实体类,对应表中数据 

 

可以创建根据实际,我这里演示流程中没有使用模型

  

4、创建mapper接口

 

复制代码
package com.plan.mapper;

import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author lanpengbiao
 * @version 1.0
 * @Description UserMapper
 * @date Created in 2021-11-29 13:31
 * @since jdk1.7
 */
@Mapper
public interface  UserMapper {
    List selById();
}
复制代码

 

 


5、
创建mapper映射文件 

位置:

1、Resource目录下,mapper

名称应该与接口名称相同

UserMapper.xml

复制代码
<?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.plan.mapper.UserMapper">


    <select id="selById" resultType="java.util.Map">
       select * from t_test_user
    </select>
</mapper>
复制代码

 

 

6、创建spring-boot主程序入口

入口应该在包的顶层

 

ManageCourseApplication
复制代码
package com;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author lanpengbiao
 * @version 1.0
 * @Description ManageCourseApplication
 * @date Created in 2021-11-29 13:36
 * @since jdk1.7
 */
@SpringBootApplication
public class ManageCourseApplication {
    public static void main(String[] args) {
        SpringApplication.run(ManageCourseApplication.class, args);
    }
}
复制代码

 

 

 

7、测试mapper接口

在test/java目录

 

复制代码
package com.plan;

import com.ManageCourseApplication;
import com.plan.mapper.UserMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

/**
 * @author lanpengbiao
 * @version 1.0
 * @Description mapper
 * @date Created in 2021-11-29 13:35
 * @since jdk1.7
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = ManageCourseApplication.class)
public class TestUserMapper {
    @Autowired
    private UserMapper userMapper;
    @Test
    public void testSelById(){
        List list = userMapper.selById();
        System.out.println(list);
    }
    
}
复制代码

 

 

 

 

二、SpringBoot mybatis 配置多个mysql

 

1、application.yml

 

 

复制代码
datasource:
  xhf:
    jdbcUrl: jdbc:mysql://192.168.79.129:3306/demo?useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root123
    driver-class-name: com.mysql.cj.jdbc.Driver #myslq驱动
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      minimum-idle: 5
      maximum-pool-size: 15
      auto-commit: true
      idle-timeout: 30000
      pool-name: DatebookHikariCP
      max-lifetime: 1800000
      connection-timeout: 3000
      connection-test-query: SELECT 1
复制代码

 

 

2、配置数据源信息,mapper接口,mapper映射文件

 

复制代码
package cn.myself.repositories.datasource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSource;


/**
 * @author lanpengbiao
 * @version 1.0
 * @Description XhfDataSourceConfig
 * @date Created in 2022-3-23 10:07
 * @since jdk1.7
 */
/*
 * basePackages : mapper类所在包
 * sqlSessionFactoryRef spring容器中对应xhfSqlSessionFactory 对象id,此对象在本类中进行配置
 */
@Configuration
@MapperScan(basePackages = "cn.xhf.mapper",sqlSessionFactoryRef = "xhfSqlSessionFactory")
public class XhfDataSourceConfig {
    /*
     * @ConfigurationProperties("spring.datasource.xhf") 配置文件中,当前dataSource对应的信息
     * @Bean(name = "xhfDataSource")  根据当前信息所创建的dataSource对象id
     */
    @Primary
    @Bean(name = "xhfDataSource")
    @ConfigurationProperties("datasource.xhf")
    public DataSource masterDataSource(){
        return DataSourceBuilder.create().build();
    }
    /*
     * @Bean(name = "xhfSqlSessionFactory") 所创建的SqlSessionFactory对象对应的id,在本类注解保持一致
     * @Bean(name = "xhfDataSource")  根据当前信息所创建的dataSource对象id
     */
    @Bean(name = "xhfSqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("xhfDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        //设置Mapper.xml映射文件所在目录,默认在
        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/xhf/*Mapper.xml"));
        return sessionFactoryBean.getObject();
    }



}
复制代码

 

 

3、在启动类引入

 

复制代码
package cn;

import org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;

/**
 * @author lanpengbiao
 * @version 1.0
 * @Description MyJobApplication
 * @date Created in 2022-1-28 13:56
 * @since jdk1.7
 */
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, MybatisAutoConfiguration.class})
@SpringBootApplication
public class MyJobApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyJobApplication.class);
    }
}
复制代码

 

posted @   hehehenhen  阅读(158)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示