SpringBoot系列:使用原生JDBC实现对数据库的增删改查

news/2024/11/16 10:20:47/文章来源:https://www.cnblogs.com/qimoxuan/p/18367659

application.yml

spring:datasource:username: rootpassword: 123456url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8driver-class-name: com.mysql.cj.jdbc.Driver

ApplicationTests

package com.xiao;import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;@SpringBootTest
class Springboot04DataApplicationTests {@AutowiredDataSource dataSource;@Testvoid contextLoads() {System.out.println(dataSource.getClass());//获得数据库链接try {Connection connection= dataSource.getConnection();System.out.println(connection);connection.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}

JDBCController

package com.xiao.controller;import org.springframework.beans.factory.annotation.Autowired;
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.RestController;import java.util.List;
import java.util.Map;@RestController
public class JDBCController {@AutowiredJdbcTemplate jdbcTemplate;@GetMapping("/userList")public List<Map<String,Object>> userList(){String sql="select * from user";List<Map<String,Object>> list_maps=jdbcTemplate.queryForList(sql);return list_maps;}@GetMapping("/addUser")public String addUser(){String sql="insert into mybatis.user(id,name,pwd) values(4,'小如','123456')";jdbcTemplate.update(sql);return "ok";}@GetMapping("/updateUser/{id}")public String updateUser(@PathVariable("id") int id){String sql="update mybatis.user set name=?,pwd=? where id="+id;Object[] objects=new Object[2];objects[0]="小品";objects[1]="3745678";jdbcTemplate.update(sql,objects);return "ok";}@GetMapping("/deleteUser/{id}")public String deleteUser(@PathVariable("id") int id){String sql="delete from mybatis.user where id=?";jdbcTemplate.update(sql,id);return "ok";}
}

使用springboot后,你会发现,即便是原生JDBC来进行CRUD,依然十分的简便,因为springboot帮我们做了很多事,一个DataSource,一个JdbcTemplate就省去了很多很多我们原先需要做的事了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783873.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tp1200触摸屏画面光标使用方法

1:点击画面空白处 2:编辑Tab排序,就是首次显示当前画面时,光标处于光标为1的对象上 3:当IC卡具备Enter点击功能时,可以直接使用刷卡去触发这个按钮 *******************************************************************************************************1:激活屏幕…

MAC苹果电脑JDK下载安装教程

JDK For Mac在Mac上安装JDK的步骤主要包括下载JDK安装包、‌安装JDK、‌查询JDK安装路径、‌配置Java JDK环境变量以及使配置生效。‌以下是详细的步骤说明:‌下载JDK安装包访问Oracle官网,‌选择适合MacOS版本的JDK安装包进行下载。‌对于M系列芯片,‌选择Arm 64 DMG insta…

通过代码添加的控件的事件如何编写?

背景 这两天在重新复习事件,比如Winform控件的事件,利用vs很方便地实现。比如:想要在窗体加载时,修改窗口的标题;我们只需要双击Form1的标题栏即可;vs便会给我们生成如下代码,且光标自动定位到方法体中:private void Form1_Load( object sender, EventArgs e ) {}然后我…

Visual Studio 2013 jsoncpp 0.10.7库编译

前言全局说明Visual Studio 2013 jsoncpp 编译jsoncpp 介绍说明: https://www.cnblogs.com/wutou/p/18367551一、说明 环境: Windows 7 旗舰版 Visual Studio 2013二、选择根据vs2013工具环境和 jsoncpp 介绍,这里选用 0.10.7 版本演示三、准备 3.1 解压文件 进入 makefiles\…

Blazor开发框架Known-V2.0.8

V2.0.8 Known是基于Blazor的企业级快速开发框架,低代码,跨平台,开箱即用,一处代码,多处运行。目前已有部分客户在使用,最近客户的项目和产品,有的在Docker中运行,有的在重新升级改造中使用达梦数据库。为快速响应客户的需求,本次版本修复了一些BUG、增强了框架内置功能…

11 IIC通讯协议

目录前言一、IIC介绍1.IIC的时序2.使用IIC对从机寄存器的写操作流程3.使用IIC对从机寄存器的读操作流程二、软件实现IIC协议1.GPIO口配置2.IIC开始信号3.IIC结束信号4.发送数据5.接收数据6.接收ACK响应7.发送ACK和NACK响应8.对寄存器进行写处理9.对寄存器进行读处理三、硬件实现…

判断是否为同构字符串

要想解答这个算法,得明白一个概念,什么是同构字符串,来看一下定义:也就是说,s可以转化为t,对应的t也可以转化为s。解决思路: 我们进行一次的遍历,然后定义了两个dict,来记录s->t,t->s的映射,然后在后面校验一下,这两个dict的value 是否是相同的,来上代码。c…

Gradle编译项目Druid找不到tools.jar和jconsole.jar

原因:jdk11之后不支持druid的两个依赖 方法一:<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.5</version>方法二:<!-- <exclusions> <exclusion> …

鸿蒙开发ArkUI沉浸式导航

1.沉浸式导航的效果是占用底部顶部或者其他挖孔区域的位置 沉浸式的样式 非沉浸式的样式 2.实现方式有三种实现放1.全局(Ability)2.页面3.指定元素全局的实现方式(Ability) 在你的Ability 中设置 在页面创建完成后 (onWindowStageCreate) 中onWindowStageCreate(windowStage…

Python 实现Word和TXT文本相互转换

Word文档(.doc或.docx)和纯文本文件(.txt)是两种常用的文件格式。Word文档通常用于复杂的文档处理和排版,而纯文本文件则用于存储和传输纯文本信息。了解如何在这两种格式之间进行转换能提高工作效率,并便于文件管理。本文将详细介绍如何使用Python实现Word和TXT文件格式…

Python一些简单基础的模板化语法

字符串的格式化 %s:可以接收任何类型的传值(%d只可以接收整型int)单个值 "my age is %s" %"18.56"按照值对应 res = "my name is %s,my age is %s" %("xj",18)按照字典传值 res = "my name is %(name)s,my name is %(age)s&q…

Windows下cmd中cd命令不起作用的原因和解决办法

Windows下cmd中cd命令不起作用的原因和解决办法如图:cd命令无效 原因:windows系统cmd换目录跨磁盘的话需要先进行磁盘的转换