千家信息网

SpringBoot如何整合jdbc和mybatis

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关SpringBoot如何整合jdbc和mybatis,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通用配置#下面介绍的整合JDBC和整合
千家信息网最后更新 2026年11月04日SpringBoot如何整合jdbc和mybatis

这篇文章将为大家详细讲解有关SpringBoot如何整合jdbc和mybatis,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

通用配置#

下面介绍的整合JDBC和整合MyBatis都需要添加的实体类和配置

数据库表#

CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;

实体类#

添加简单的User实体类,用于下面jdbc和mybatis的使用和测试。再添加一个toString方法为了测试时看结果比较简单。

public class User { private Integer id; private String username; private String address; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", address='" + address + '\'' + '}'; }}

maven配置#

mysql版本根据自己数据库版本设置

druid为阿里云提供的数据源(可理解为连接池)

com.alibaba druid-spring-boot-starter 1.1.10 mysql mysql-connector-java runtime 8.0.18

数据库配置#

数据库properties配置肯定是少不的啦.

spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.username=usernamespring.datasource.password=passwordspring.datasource.url=jdbc:mysql://127.0.0.1:3306/mydatabase

整合JDBC#

maven依赖#

添加springboot提供的jdbc依赖

org.springframework.boot spring-boot-starter-data-jdbc

使用#

@Servicepublic class UserService { @Autowired JdbcTemplate jdbcTemplate; public Integer addUser(User user) { return jdbcTemplate.update("insert into user (username,address) values (?,?);", user.getUsername(), user.getAddress()); } /** * 查询方式一 * 当类属性和数据库字段不对应时才这样使用 * @return */ public List getAllUserFirst() { return jdbcTemplate.query("select * from user;", new RowMapper() { @Override public User mapRow(ResultSet resultSet, int i) throws SQLException { User user = new User(); int id = resultSet.getInt("id"); String address = resultSet.getString("address"); String username = resultSet.getString("username"); user.setId(id); user.setUsername(username); user.setAddress(address); return user; } }); } /** * 查询方式二 * 当类属性和数据库字段对应时就这样使用啦,比上面的简洁很多 */ public List getAllUserSecond() { return jdbcTemplate.query("select * from user;", new BeanPropertyRowMapper<>(User.class)); }}

这里需要记一下,jdbc不论新增,修改,删除都是使用update方法。而查询则是使用query。

如果数据库字段和实体类属性不一致时,则需要使用上面代码中的查询方式一

如果数据库字段和实体类属性全都一致时,则可以使用上面代码中的查询方式二,简单快捷。

测试#

整理完后当然是少补了测试的啦,测试类如下:

@SpringBootTestclass JdbcApplicationTests { @Autowired UserService userService; @Test public void addUser() { User user = new User(); user.setUsername("johnson2"); user.setAddress("colablog.cn"); userService.addUser(user); } public void queryUsers() { List allUserFirst = userService.getAllUserFirst(); System.out.println(allUserFirst); }}

整合MyBatis#

当下最流行的持久层框架MyBatis,天天SSM,听到耳朵都起茧子了。整合MyBatis可能是使用到最多的,整合如下:

maven依赖#

版本的话可以查看maven仓库

org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.1

扫描Mapper#

需要提供mapper路径给SpringBoot进行扫描,我的包扫描路径为cn.colablog.mybatis.mapper

方式一:自己添加一个配置项

@Configuration@MapperScan(basePackages = "cn.colablog.mybatis.mapper")public class MyBatisConfig {}

方式二:直接在Application上配置

@SpringBootApplication@MapperScan(basePackages = "cn.colablog.mybatis.mapper")public class MybatisApplication { public static void main(String[] args) { SpringApplication.run(MybatisApplication.class, args); }}

Mapper映射#

UserMapper接口#

在Mapper包cn.colablog.mybatis.mapper目录下添加UserMapper接口

@Mapperpublic interface UserMapper { List getAllUser();}UserMapper.xml#Copy

存放方式有三种:

方式一(默认)

SpringBoot默认找Mapper.xml是在resources目录下,例如映射User类的路径在java目录下的cn.colablog.mybatis.mapper。

那么UserMapper.xml就需要放在resources目录下的cn.colablog.mybatis.mapper.

注意:如果你使用的是IDEA开发工具,resource下添加目录不能这样添加:

这样添加IDEA只会帮你添加一个名为cn.colablog.mybatis.mapper的目录,所以你需要逐个目录依次添加,存放位置如下:

方式二

在properties文件中进行配置存放路径:

mybatis.mapper-locations=classpath:/mapper/*.xml

存放位置如下:

方式三

在pom.xml中配置resource需要加载java目录下的xml文件:

src/main/java **/*.xml src/main/resources ...

这样你可以和UserMapper接口存放在同一个目录下,存放位置如下:

本文标题: SpringBoot如何整合jdbc和mybatis

关于"SpringBoot如何整合jdbc和mybatis"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

方式 整合 数据 目录 配置 数据库 实体 查询 测试 字段 属性 路径 位置 接口 版本 篇文章 一致 代码 文件 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 喔噻互联网科技有限公司 广东万易互联网科技有限公司惠州分公司 智能科技公司是互联网公司吗 以房互联网科技 奇酷互联网络科技 凡科互联网科技 米客互联网科技 广州善班互联网科技 苏州大垚互联网科技 佰商互联网科技有限公司 成都仁贤领冠互联网科技有限公司 农村开互联网科技讲堂 科技互联网的估值 互联网教育科技公司vipkid 江阴互联网智能科技产品进口 亳州好赞互联网科技有限公司 华中科技大学互联网的牛人 互联网硬科技公司 互联网科技对化妆品行业 互联网的黑科技实验室 朗新科技与工业互联网 北京互联网络科技有限公司 美国互联网黑科技 沃里互联网科技 湖北码尼互联网科技有限公司电话 武汉健翔互联网络科技有限公司 佛山市翊博互联网络科技有限公司 深圳艾果互联网通讯科技 北京市互联网新科技 求路客互联网科技电话
0