当前位置: 首页 > news >正文

SpringBoot (三) 整合数据库访问 jdbcTemplate、MyBatis

哈喽,大家好,我是有勇气的牛排(全网同名)🐮🐮🐮

有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。

Spring Data了解下:

Spring Data官网:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/

Spring Data主要为数据访问提供一个相似的、一致的、基于Spring的编程模型,同时保留各个数据库的存储特征,这使得数据访问技术变得非常简单。

常用的整合数据模型有:Jdbc、MyBatis、durid

1 准备数据库

CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(32) NOT NULL COMMENT '用户名称',`age` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
insert into users values (null, '有勇气的牛排1', '18');
insert into users values (null, '有勇气的牛排2', '19');
insert into users values (null, '有勇气的牛排3', '20');

image.png

2 整合 JdbcTemplate

JdbcTemplate类是Spring对JDBC支持的核心,它提供了对数据库所有功能操作的支持。

2.1 pom依赖

<!-- SpringBoot整合jdbc 模板框架 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- SpringBoot整合mysql驱动类 -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.21</version>
</dependency>

2.2 application.yml

spring:# 整合 JdbcTemplatedatasource:url: jdbc:mysql://localhost:3306/cs_test_springbootusername: rootpassword: root123456driver-class-name: com.mysql.jdbc.Driver

2.3 后端

/** @Author  : 有勇气的牛排* @FileName: UserService_jdbcTemplate.java* desc     :* */package com.couragesteak.service;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserService_jdbcTemplate {@Autowiredprivate JdbcTemplate jdbcTemplate;/** 插入数据到user表* */// http://127.0.0.1:8080/insertUser?userName=cs666&age=21@RequestMapping("/insertUser")public String insertUser(String userName, Integer age) {int update = jdbcTemplate.update("insert into users values (null, ?, ?)", userName, age);return update > 0 ? "success" : "fail";}
}

3 整合MyBatis

MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行了封装,使开发者只需要关注SQL本身,而不需要花费精力去处理注册驱动、创建connection、创建statement、手动设置参数等操作。

3.1 Maven依赖

<!-- springboot 整合mybatis -->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version>
</dependency>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.21</version>
</dependency>

3.2 application.yml

<!-- springboot 整合mybatis -->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version>
</dependency>
<!-- SpringBoot整合mysql驱动类 -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.21</version>
</dependency>

3.3 用户实体 UserEntity.java

/** @Author  : 有勇气的牛排* @FileName: UserEntity.java* desc     :* */package com.couragesteak.entity;public class UserEntity {private Integer id;private String userName;private Integer age;public UserEntity() {}public UserEntity(String userName, Integer age) {this.userName = userName;this.age = age;}public UserEntity(Integer id, String userName, Integer age) {this.id = id;this.userName = userName;this.age = age;}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 Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
}

3.4 Mapper

接口: UserMapper.java

package com.couragesteak.mapper;import com.couragesteak.entity.UserEntity;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;public interface UserMapper {@Insert("insert into users values (null, #{userName}, #{age});")int insertUser(@Param("userName") String userName, @Param("age") Integer age);@Select("select id, name, age from users where id=#{id}")UserEntity selectByUserId(@Param("id") Integer id);
}

3.5 后端

/** @Author  : 有勇气的牛排* @FileName: UserService_MyBatis.java* desc     :* */package com.couragesteak.service;import com.couragesteak.entity.UserEntity;
import com.couragesteak.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserService_MyBatis {@Autowiredprivate UserMapper userMapper;/*** MyBatis 查询数据*/// http://127.0.0.1:8080/mybatis_findUser?id=3@RequestMapping("/mybatis_findUser")public UserEntity mybatis_FindUserById(Integer id) {System.out.println("======mybatis_FindUserById=======");System.out.println(id);return userMapper.selectByUserId(id);}/*** MyBatis 插入数据*/// http://127.0.0.1:8080/mybatis_insertUser?userName=cs7&age=22@RequestMapping("/mybatis_insertUser")public String mybatis_insertUser(String userName, Integer age) {int insert = userMapper.insertUser(userName, age);return insert > 0 ? "success" : "fail";}
}

image.png

参考地址:

  • https://www.couragesteak.com/article/289
  • 余胜军
http://www.lryc.cn/news/28674.html

相关文章:

  • 机器学习、数据挖掘和统计模式识别学习(Matlab代码实现)
  • Java修饰符-ai生成
  • kafka部署安装
  • 使用asio实现一个单线程异步的socket服务程序
  • 大型JAVA版云HIS医院管理系统源码 Saas应用+前后端分离+B/S架构
  • 1 网关介绍
  • Java中Scanner用法
  • malloc实现原理探究
  • Spring——整合junit4、junit5使用方法
  • 计算机网络的一些思考(待完善)
  • 【第一章】谭浩强C语言课后习题答案
  • 最新版本vue3+vite重构尚品汇(解决接口问题)第21-50集
  • 【超级猜图案例上半部分的实现 Objective-C语言】
  • 刷题笔记4 | 24. 两两交换链表中的节点、19. 删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
  • 15、正则表达式
  • javaWeb核心01-HTTPTomcatServlet
  • 深圳大学计软《面向对象的程序设计》实验16 期末复习
  • Linux基础命令(一)
  • RocketMQ Broker消息处理流程剩余源码解析
  • JQuery入门基础
  • kafka 构建双向SSL认证
  • 推荐一个.Net Core开发的Websocket群聊、私聊的开源项目
  • 华为OD机试Golang解题 - 事件推送 | 含思路
  • 将微信小程序页面转为图片
  • LINE、SDNE和struc2vec图嵌入算法学习笔记
  • Buuctf Younger-drive 题解
  • 数据结构与算法:二叉树专题
  • Cadence Allegro 导出Cadence Schematic Feedback Report详解
  • 《计算机系统基础》—— 运算
  • MSTP多进程讲解与实验配置