[springboot——02]JDBCTemplate操作MySQL
创始人
2025-05-31 15:00:40
0

1. 配置基础依赖

mysql 驱动版本看情况【我的mysql版本为8.0.26】


org.springframework.bootspring-boot-starter-jdbc


mysqlmysql-connector-java8.0.26

配置数据库的连接信息,在 application.yaml 配置文件中配置

官方配置:Common Application Properties (spring.io)

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: rooturl: jdbc:mysql://localhost:3306/[数据库表]

2.新建实体类

新建实体类 User ,实现 RowMapper 接口 ,该接口重写的 mapRow 方法为了实体字段和数据表字段映射(对应)。

package com.example.demo.entity;import lombok.*;
import org.springframework.jdbc.core.RowMapper;import java.sql.ResultSet;
import java.sql.SQLException;/*** @author: fly* @Date: 2023-03-19 20:14* @Description: 用户实体类*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@ToString
public class User implements RowMapper {private int id;private String username;private String password;@Overridepublic User mapRow(ResultSet rs, int rowNum) throws SQLException {User user = new User();user.setId(rs.getInt("id"));user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));return user;}
}

3.操作数据

JDBCTemplate 提供3个操作数据的方法:

  1. execute 直接执行 sql 语句
  2. update 进行新增、修改、删除操作
  3. query 查询操作

创建数据表 

CREATE TABLE `t_user` (`id` int NOT NULL AUTO_INCREMENT COMMENT '用户id',`username` varchar(100) DEFAULT NULL,`password` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表'

插入一条数据

INSERT INTO t_user VALUES(NULL,"admin","123456");

 添加控制器 UserController 【均在浏览器测试通过!】

  1. 添加用户 /user/save
  2. 查询用户 /user/get/1 
  3. 查询所有用户 /user/get 或者 /user/getAllUsers
  4. 修改用户 /user/update/1
  5. 删除用户 /user/delete/1
package com.fly.demo.controller;import com.fly.demo.entity.User;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** @author: fly* @Date: 2023-03-20 17:05* @Description: 用户控制器*/
@RestController
@RequestMapping("/user")
@Log4j2
public class UserController {private JdbcTemplate jdbcTemplate;@Autowiredpublic void setJdbcTemplate(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;}/*** 添加用户*/@GetMapping("/save")public void saveUser() {String sql = "INSERT INTO t_user VALUES(NULL,?,?)";User user = new User(null,"209110407","fengluyu");int row = jdbcTemplate.update(sql,user.getUsername(),user.getPassword());log.info("保存用户成功!保存个数: " + row);}/*** 获取单个用户* @param id 用户id* @return 返回用户*/@GetMapping("/get/{id}")public User getUser(@PathVariable int id) {String sql = "SELECT id,username,password FROM t_user WHERE id = ?";List userList = jdbcTemplate.query(sql, new User(), id);User user = null;if (userList.size() > 0) {user = userList.get(0);}return user;}/*** 返回所有用户* @return 所有用户列表*/@GetMapping("/get")public List getUsers() {String sql = "SELECT id,username,password FROM t_user";return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));}/*** 获取所有用户* @return 所有用户列表*/@GetMapping("/getAllUsers")public List getAllUser() {String sql = "SELECT id,username,password FROM t_user";return jdbcTemplate.query(sql,new User());}@GetMapping("/update/{id}")public void updateUser(@PathVariable int id) {String sql = "UPDATE t_user SET password = ? WHERE id = ?";int row = jdbcTemplate.update(sql,"87am23",id);log.info("修改用户(id:" +id + ") 操作: " + row);}@GetMapping("/delete/{id}")public void deleteUser(@PathVariable int id) {String sql = "DELETE FROM t_user WHERE id = ?";int row = jdbcTemplate.update(sql,id);log.info("删除用户(id: " + id + ") 操作: " + row);}
}

 4.浏览器访问

 

相关内容

热门资讯

最新或2023(历届)教师产假... 最新或2023(历届)教师产假请假条格式范文一:  尊敬的学校领导:  因本人有孕在身,预产期为12...
课堂不讲话的保证书 课堂不讲话...   x老师:  开学几个星期以来,我多次在课堂上讲话,之前,x老师已经批评过我了。今天,在自修课上,...
学生实习安全保证书范文 中专实...   范文一:  在外实习期间,我清楚知道我既是实习单位的员工又是学校的学生,具有双重身份;我在外实习...
大学防火安全保证书范文 施工期... 为贯彻《机关、团体、企业、事业单位消防安全管理规定》(公安部第61号令)和《集美大学消防安全工作管理...
最新或2023(历届)教师事假... 教师事假请假条最新或2023(历届)一:  尊敬的陈主任:  您好!我是*****09级XX(专业名...
最新或2023(历届)最新产品... 篇一:  xx公司自成立以来,一直将产品质量定位为公司参与市场竞争的核心,正是这个成功的定位和xx公...
情侣爱情保证书范文 情侣爱情保...  亲爱的,真正爱一个人是无法说出理由的,因为爱是不需要理由的。 我只知道无论何时何地、心情好坏,我都...
搞笑创意结婚保证书 搞笑创意结...  本人谨以赤诚之心,在此立此宣言:结婚之后,工资奖金全交,剩菜剩饭全包,家务杂活全干,一切以太太的话...
夫妻结婚后保证书范文 夫妻吵架...  范文一:  本人()保证在婚后生活做到以下几点!  1.婚后由本人()主动承担一切光荣的家务劳动。...
教师行为保证书范文 教师行为保...   为了落实上级文件精神,树立xx小学教师的良好形象,端正师德师风,遵守教师职业道德,规范自己的从教...
男朋友写的超强婚前保证书 婚前...  女方保证做一个贤妻良母:  1、女方保证做一个爱丈夫、爱公婆、爱孩子、爱家庭、爱事业、不撒谎、不吹...
搞笑结婚的保证书 搞笑结婚的保...   尊敬的各位领导,亲爱的父老乡亲们,今天,是我和XXX新婚大喜的日子,为了响应党中央的号召,牢记党...
打老婆的认错保证书 打老婆的认...  尊敬的亲爱的老婆:  在落笔之前,请宽恕我以前的诸多过错。由于我自控能力差,脾气又不好,在这次的事...
结婚新郎保证书范文怎么写 接亲...   保证书一  亲爱的老婆,我向你承诺:  家务活全包(包括帮老婆洗脚按摩)  收入全交(包括地上捡...
关于喝酒的保证书,写给老婆的喝...  亲爱的老婆大人:  你批评我的对,昨晚我蹲在卫生间,趴在马桶上,进行了整整一个晚上的反思。  当然...
结婚堵门保证书 结婚堵门保证书...  我向我亲爱的老婆大人保证:  1. 老婆永远是对的。  2. 如果不是,那一定是我想错了。  3....
写给老婆的结婚保证书 结婚保证... 曾经有一个开心快乐乖的老婆摆在我身边,我没有好好珍惜,等到她生气了,不理我的时候我才后悔莫及,尘世间...
学生努力学习保证书 学生努力学...   曾经的曾经都一次一次的说过要努力,要改变自己,要让大家都夸我,单我没做到。以前还是个懵懂的女孩可...
违纪学生保证书范本 违纪学生保...   因在校期间多次违反学校纪律,给班级和学校都造成了不好的影响,所以特做以下保证。本人从即日起保证做...
最新房屋质量保证书 最新房屋质...  一、质量保证  遵照国家现行规范进行设计施工,并通过有关部门的质量验收和评定,符合国家验收规范要求...