

【笔记】Spring整合MyBatis
source link: https://feiju12138.github.io/2022/10/08/Spring%E6%95%B4%E5%90%88MyBatis/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【笔记】Spring整合MyBatis
2022-10-08Java后端学习指北
1
Spring整合MyBatis学习笔记
pom.xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
定义JDBC配置类
- 利用数据库连接池druid创建类型为DataSource的bean对象
src/main/java/com/conf/JDBCConfig.java
package com.conf;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.Bean;
import javax.sql.DataSource;
public class JDBCConfig {
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("");
dataSource.setUsername("");
dataSource.setPassword("");
return dataSource;
}
}
定义MyBatis配置类
sqlSessionFactoryBean.setTypeAliasesPackage("");
:利用包扫描自动配置返回值类型别名。想当于<typeAliases><package name="com.pojo"/></typeAliases>
配置mapperScannerConfigurer.setBasePackage("");
:配置Mapper扫描的包名
package com.conf;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import javax.sql.DataSource;
public class MybatisConfig {
/**
* 定义MyBatis配置的bean
*/
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean (DataSource dataSource) {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setTypeAliasesPackage("com.pojo");
sqlSessionFactoryBean.setDataSource(dataSource);
return sqlSessionFactoryBean;
}
/**
* 定义Mapper扫描的bean
*/
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(DataSource dataSource) {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setBasePackage("com.dao");
return mapperScannerConfigurer;
}
}
定义全局配置类
- 引入JDBC配置
- 引入MyBatis配置
src/main/java/com/conf/SpringConfig.java
@ComponentScan("")
:包扫描@Import()
:引入配置类
package com.conf;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@ComponentScan("com")
@Import({JDBCConfig.class, MybatisConfig.class})
public class SpringConfig {
}
src/main/java/com/pojo/User.java
package com.pojo;
public class User {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
src/main/java/com/dao/UserDao.java
package com.dao;
import com.pojo.User;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface UserDao {
@Select("SELECT * FROM user")
List<User> selectAll();
}
src/main/java/com/Application.java
package com;
import com.conf.SpringConfig;
import com.dao.UserDao;
import com.pojo.User;
import com.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import java.util.List;
public class Application {
public static void main(String[] args) {
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
UserDao userDao = applicationContext.getBean(UserDao.class);
List<User> users = userDao.selectAll();
System.out.println(users);
}
}
Recommend
-
58
最近项目原因可能会继续开始使用MyBatis,已经习惯于spring-data的风格,再回头看xml的映射配置总觉得不是特别舒服,接口定义与映射离散在不同文件中,使得阅读起来并不是特别方便。Spring中整合MyBatis就不多说了,最近大量使用SpringBoot,因此整理一下SpringBoo...
-
46
一、运行springboot-mybatis工程gitclone下载工程springboot-learning-example,项目地址见GitHub。下面开始运行工程步骤(QuickStart):1.数据库准备a.创建数据库springbootdb:CREATEDATABASEspringbootdb;b.创建表city:(因为我喜欢徒步)DROPTABLEIFEXISTS`cit...
-
27
spring整合Mybatis-plus 今天就随便说说spring整合mybatis-plus,就不再搭建一个web项目了,简单做一个测试类。 既然是spring,那就少不了各种xxx.xml配置文件。 那就先说说配置文件 <1>...
-
18
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain...
-
9
目录 前言 新建一个普通的Maven项目 基本目录结构 ├── src # │ ├── main # │ │ └── java # java代码目录 │ │ └── resources # 配置文件目录, 存...
-
4
Mybatis+Spring整合,没有考虑Interceptor线程安全,却只在debug时诱发bug 本文原创来自我部门框架组核心开发李文龙 先看下发现这个bug的一个背景,但背景中的问题,并非这个bug导致:...
-
8
MyBatis 简介 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java PO...
-
6
一、Spring整合Mybatis思路分析 1.1 环境准备 步骤1:准备数据库表 Mybatis是来操作数据库表,所以先创建一个数据库及表 create database spring_db character set utf8; use spring_db; create table tbl_account( id...
-
5
【笔记】Spring整合JUnit 2022-10-08
-
11
2023年想搭建一套属于自己的框架,做一个属于自己想法的项目。这些年工作中一直用公司已有的框架,以前有跟着学习视频搭建过,但自己真正动手搭建时发现问题还是很多,比如没有引入Mybatis-plus包之前,项目api test是成功的,引入Mybatis-plus包后就一直启动不成功...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK