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);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律