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

【Java+Springboot】------ 通过JDBC+GetMapping方法进行数据select查询、多种方式传参、最简单的基本示例!

 一、JDBC如何使用、PostGresql数据库

1、在pom.xml 先引用jdbc组件。

 <!--jdbc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>

2、在pom.xml 再引用postgresql组件。

  <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.2.8</version></dependency>

3、示例图如下:

4、pom.xml完整代码: 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.dcs</groupId><artifactId>lybdemo</artifactId><version>0.0.1-SNAPSHOT</version><name>lybdemo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><!--jdbc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--StringUtils 引用--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version> <!-- 请使用最新的版本 --></dependency><!--PostGresql数据库--><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.2.8</version></dependency><!--数据库连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.12</version></dependency><!--阿里巴巴--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.70</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

二、连接池参数设置

1、在application.properties中加上连接池配置 

spring.datasource.url=jdbc:postgresql://192.168.1.18:8088/dcs_xg_test
spring.datasource.username=postgres
spring.datasource.password=KzKj@20230331

2、效果如下:

三、查询数据库中数据 【提示:postgresql数据库中 如果表字段名使用大写方式、sql语句的字段名需要使用“\"” 引用起来

1、创建Controller控制器类 

2、调用JDBC连接类 

private final JdbcTemplate jdbcTemplate;//连接变量@Autowiredpublic testController(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;//赋予权限}

3、无参数查询数据方式。

 /*** 无参数获取数据方式* **/@GetMapping("/getselect")public IMXResponse  getselect()throws Exception {IMXResponse ret=new IMXResponse();List<Map<String,Object>> list= jdbcTemplate.queryForList("SELECT \"CNAME\",\"ID\",\"STORE_PATH\",\"PUBLISH_TIME\" FROM \"PUB_FILES\" ORDER BY \"PUBLISH_TIME\" DESC LIMIT 5 OFFSET 0 ");//查询数据ret.setSuccess(1);ret.setJson(list);return ret;}

在浏览器地址栏输入如下地址显示结果如下:

4、单个参数查询数据方式。

 /*** 单个参数获取数据方式* **/@GetMapping("/getselectId")public IMXResponse  getselectId(@RequestParam(name = "id", defaultValue = "") String id)throws Exception {System.out.print(id);//f36264bd-b68f-4183-8aac-9de96b0f832aIMXResponse ret=new IMXResponse();String v_id=id.trim();if(v_id.equals("")==false){List<Map<String,Object>> list= jdbcTemplate.queryForList("SELECT \"CNAME\",\"ID\",\"STORE_PATH\",\"PUBLISH_TIME\" FROM \"PUB_FILES\" WHERE \"ID\"='"+v_id+"' ORDER BY \"PUBLISH_TIME\" DESC LIMIT 5 OFFSET 0 ");ret.setSuccess(1);ret.setJson(list);}else{ret.setSuccess(0);ret.setJson("");}return ret;}

在浏览器地址栏输入如下地址显示结果如下:

4、多个参数获取数据方式

/*** 多个参数获取数据方式* **/@GetMapping("/getselectMulitId")public IMXResponse  getselectMulitId(@RequestParam String id,@RequestParam String billid)throws Exception {//http://127.0.0.1:8080/getselectMulitId?id=2211091436481667975808d1d5cc3&billid=13e9c0f11ddd4c1c81fe222a73364252System.out.print(id);//IMXResponse ret=new IMXResponse();String v_id=id.trim();String v_billid=billid.trim();if(v_id.equals("")==false){List<Map<String,Object>> list= jdbcTemplate.queryForList("SELECT \"CNAME\",\"ID\",\"STORE_PATH\",\"PUBLISH_TIME\" FROM \"PUB_FILES\" WHERE \"ID\"='"+v_id+"' AND \"BILL_ID\"='"+v_billid+"' ORDER BY \"PUBLISH_TIME\" DESC LIMIT 5 OFFSET 0 ");ret.setSuccess(1);ret.setJson(list);}else{ret.setSuccess(0);ret.setJson("");}return ret;}

5、json格式数据传参方式获取数据。这种数据格式需要实现ajax方法调用 

 /*** 传object参数获取数据方式* **/@GetMapping("/getselectObject")public IMXResponse  getselectObject(@RequestParam String whereJson)throws Exception {//http://127.0.0.1:8080/getselectObject?whereJson={id:2211091436481667975808d1d5cc3,billid:13e9c0f11ddd4c1c81fe222a73364252}//此地址参数需要JSON.stringify() 编译一下System.out.print(whereJson);//IMXResponse ret=new IMXResponse();String v_whereJson=whereJson.trim();if(v_whereJson.equals("")==false){JSONObject jsonObject=JSONObject.parseObject(v_whereJson);String v_id=jsonObject.getString("id");String v_billid=jsonObject.getString("billid");List<Map<String,Object>> list= jdbcTemplate.queryForList("SELECT \"CNAME\",\"ID\",\"STORE_PATH\",\"PUBLISH_TIME\" FROM \"PUB_FILES\" WHERE \"ID\"='"+v_id+"' AND \"BILL_ID\"='"+v_billid+"' ORDER BY \"PUBLISH_TIME\" DESC LIMIT 5 OFFSET 0 ");ret.setSuccess(1);ret.setJson(list);}else{ret.setSuccess(0);ret.setJson("");}return ret;}

四、testController 完整代码:

package com.dcs.lybdemo.controller;import com.alibaba.fastjson.JSONObject;
import com.dcs.lybdemo.common.IMXResponse;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.List;
import java.util.Map;@RestController
public class testController {private final JdbcTemplate jdbcTemplate;@Autowiredpublic testController(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;}/*** 无参数获取数据方式* **/@GetMapping("/getselect")public IMXResponse  getselect()throws Exception {IMXResponse ret=new IMXResponse();List<Map<String,Object>> list= jdbcTemplate.queryForList("SELECT \"CNAME\",\"ID\",\"STORE_PATH\",\"PUBLISH_TIME\" FROM \"PUB_FILES\" ORDER BY \"PUBLISH_TIME\" DESC LIMIT 5 OFFSET 0 ");ret.setSuccess(1);ret.setJson(list);return ret;}/*** 单个参数获取数据方式* **/@GetMapping("/getselectId")public IMXResponse  getselectId(@RequestParam(name = "id", defaultValue = "") String id)throws Exception {System.out.print(id);//f36264bd-b68f-4183-8aac-9de96b0f832aIMXResponse ret=new IMXResponse();String v_id=id.trim();if(v_id.equals("")==false){List<Map<String,Object>> list= jdbcTemplate.queryForList("SELECT \"CNAME\",\"ID\",\"STORE_PATH\",\"PUBLISH_TIME\" FROM \"PUB_FILES\" WHERE \"ID\"='"+v_id+"' ORDER BY \"PUBLISH_TIME\" DESC LIMIT 5 OFFSET 0 ");ret.setSuccess(1);ret.setJson(list);}else{ret.setSuccess(0);ret.setJson("");}return ret;}/*** 多个参数获取数据方式* **/@GetMapping("/getselectMulitId")public IMXResponse  getselectMulitId(@RequestParam String id,@RequestParam String billid)throws Exception {//http://127.0.0.1:8080/getselectMulitId?id=2211091436481667975808d1d5cc3&billid=13e9c0f11ddd4c1c81fe222a73364252System.out.print(id);//IMXResponse ret=new IMXResponse();String v_id=id.trim();String v_billid=billid.trim();if(v_id.equals("")==false){List<Map<String,Object>> list= jdbcTemplate.queryForList("SELECT \"CNAME\",\"ID\",\"STORE_PATH\",\"PUBLISH_TIME\" FROM \"PUB_FILES\" WHERE \"ID\"='"+v_id+"' AND \"BILL_ID\"='"+v_billid+"' ORDER BY \"PUBLISH_TIME\" DESC LIMIT 5 OFFSET 0 ");ret.setSuccess(1);ret.setJson(list);}else{ret.setSuccess(0);ret.setJson("");}return ret;}/*** 传object参数获取数据方式* **/@GetMapping("/getselectObject")public IMXResponse  getselectObject(@RequestParam String whereJson)throws Exception {//http://127.0.0.1:8080/getselectObject?whereJson={id:2211091436481667975808d1d5cc3,billid:13e9c0f11ddd4c1c81fe222a73364252}//此地址参数需要JSON.stringify() 编译一下System.out.print(whereJson);//IMXResponse ret=new IMXResponse();String v_whereJson=whereJson.trim();if(v_whereJson.equals("")==false){JSONObject jsonObject=JSONObject.parseObject(v_whereJson);String v_id=jsonObject.getString("id");String v_billid=jsonObject.getString("billid");List<Map<String,Object>> list= jdbcTemplate.queryForList("SELECT \"CNAME\",\"ID\",\"STORE_PATH\",\"PUBLISH_TIME\" FROM \"PUB_FILES\" WHERE \"ID\"='"+v_id+"' AND \"BILL_ID\"='"+v_billid+"' ORDER BY \"PUBLISH_TIME\" DESC LIMIT 5 OFFSET 0 ");ret.setSuccess(1);ret.setJson(list);}else{ret.setSuccess(0);ret.setJson("");}return ret;}
}

 需要注意的如下图: 红框里面的代码不能丢了 很重要 不然系统找不到入口.

如果不知道如何创建Springboot项目请阅读如下:

【Java+Springboot】----- 通过Idea快速创建SpringBoot项目操作方法_idea快速开启springboot项目-CSDN博客

相关文章:

【Java+Springboot】------ 通过JDBC+GetMapping方法进行数据select查询、多种方式传参、最简单的基本示例!

一、JDBC如何使用、PostGresql数据库 1、在pom.xml 先引用jdbc组件。 <!--jdbc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency> 2、在pom.xml 再引用p…...

基于单片机光伏太阳能跟踪系统设计

**单片机设计介绍&#xff0c;基于单片机光伏太阳能跟踪系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机光伏太阳能跟踪系统的设计&#xff0c;旨在通过单片机技术实现对光伏太阳能设备的自动跟踪&#xff0c;以提高太阳…...

Stable Diffusion 本地化部署

一、前言 最近在家背八股文背诵得快吐了&#xff0c;烦闷的时候&#xff0c;看到使用 AI 进行作图&#xff0c;可以使用本地话部署。刚好自己家里的电脑&#xff0c;之前买来玩暗黑4&#xff0c;配置相对来说来可以&#xff0c;就拿来试试。 此篇是按照 Github 上的 stable-d…...

C++ Algorithm 常用算法

C <algorithm> 头文件是标准库中提供的一系列算法&#xff0c;用于操作范围&#xff08;range&#xff09;内的元素。这些算法可以用于数组、容器如vector和list&#xff0c;以及其他满足相应迭代器要求的数据结构。以下是一些常用的C <algorithm> 中的算法及其使用…...

线程安全--深入探究线程等待机制和死锁问题

꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转…...

量子计算获重大突破!微软和Quantinuum将量子计算错误率降低800倍,网友:AI算力的希望

量子计算迎来新突破。 近日&#xff0c;微软和量子计算公司Quantinuum宣布&#xff1a;发现了一种新的量子计算系统&#xff0c;可以将传统量子计算的错误率下降800倍&#xff0c;这让高性能量子计算机走进现实更近了一步。 自生成式AI爆发以来&#xff0c;算力是AI发展面临的…...

WordPress 6.5 “里贾纳”已经发布

WordPress 6.5 “里贾纳”已经发布&#xff0c;其灵感来自著名爵士小提琴家Regina Carter的多才多艺。雷吉娜是一位屡获殊荣的艺术家和著名的爵士乐教育家&#xff0c;以超越流派而闻名&#xff0c;她在古典音乐方面的技术基础和对爵士乐的深刻理解为她赢得了大胆超越小提琴所能…...

甲方安全建设之日志采集实操干货

前言 没有永远的安全&#xff0c;如何在被攻击的情况下&#xff0c;快速响应和快速溯源分析攻击动作是个重要的话题。想要分析攻击者做了什么、怎么攻击进来的、还攻击了谁&#xff0c;那么日志是必不可少的一项&#xff0c;因此我们需要尽可能采集多的日志来进行分析攻击者的…...

dm8 开启归档模式

dm8 开启归档模式 1 命令行 [dmdbatest1 dm8]$ disql sysdba/Dameng123localhost:5237服务器[localhost:5237]:处于普通打开状态 登录使用时间 : 3.198(ms) disql V8 SQL> select name,status$,arch_mode from v$database;行号 NAME STATUS$ ARCH_MODE ----------…...

“AI复活”背后的数字永生:被期待成为下一个电商,培育市场认知和用户心智还需时间

“AI复活”背后的数字永生&#xff1a;被期待成为下一个电商&#xff0c;培育市场认知和用户心智还需时间© 由 九派新闻 提供 数字永生&#xff0c;还是电子宠物&#xff1f;过去一个月&#xff0c;因包小柏用AI技术让爱女在数字世界“复活”一事&#xff0c;《流浪地球2…...

基于单片机钢琴电子节拍器系统设计

**单片机设计介绍&#xff0c;基于单片机钢琴电子节拍器系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机钢琴电子节拍器系统设计是一个综合性的项目&#xff0c;它结合了单片机编程、音频处理、用户界面设计等多个领域的…...

我的创作纪念日(year Ⅱ)

大家好&#xff0c;我是Kamen Black 君&#xff0c;今天我与大家简单分享一下我两年来在CSDN的创作历程。 print("祝大家每天快乐&#xff0c;love and peace&#xff01;") 机缘 当初写博客是为了记录一些自己大学中做比赛的心得&#xff0c;没想到自己能走到这一步…...

应急响应实战笔记05Linux实战篇(1)

第1篇&#xff1a;SSH暴力破解 0x00 前言 ​ SSH 是目前较可靠&#xff0c;专为远程登录会话和其他网络服务提供安全性的协议&#xff0c;主要用于给远程登录会话数据进行加密&#xff0c;保证数据传输的安全。SSH口令长度太短或者复杂度不够&#xff0c;如仅包含数字&#x…...

重装系统之后,电脑连网卡都没反应怎么办?

前言 有些电脑比较奇葩&#xff0c;安装完成之后会出现网卡连驱动都没有&#xff0c;这时候要安装电脑驱动可是真的烦躁。怎么下手呢&#xff1f; 如果确定电脑的网卡型号还好&#xff0c;直接找个电脑下载个对应的网卡驱动&#xff0c;用U盘复制过去就能安装。 但如果不知道…...

【三十五】【算法分析与设计】综合练习(2),22。 括号生成,77。 组合,494。 目标和,模拟树递归,临时变量自动维护树定义,递归回溯,非树结构模拟树

22. 括号生成 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;["&#xff08;&#xff08;&#xff08;&#xff09;&#xff09;&#xff0…...

QT智能指针

一.概述 Qt智能指针是一种能够在不需要手动管理内存的情况下&#xff0c;自动释放资源的指针。它们是C11的std::shared_ptr的一种扩展&#xff0c;可以用于管理Qt对象&#xff0c;尤其是那些不是QObject的对象。 使用智能指针可以避免内存泄露和悬垂指针等问题&#xff0c;同时…...

C++笔记之pkg-config详解,以及g++、gcc编译时使用pkg-config

C++笔记之pkg-config详解,以及g++、gcc编译时使用pkg-config —— 2024-04-05 code review 文章目录 C++笔记之pkg-config详解,以及g++、gcc编译时使用pkg-config1.pkg-config详解`pkg-config` 的基本用法在 `g++`/`gcc` 编译时使用 `pkg-config`注意事项2.示例C++,普通编译…...

[Apple Vision Pro]开源项目 Beautiful Things App Template

1. 技术框架概述&#xff1a; - Beautiful Things App Template是一个为visionOS设计的免费开源软件&#xff08;FOSS&#xff09;&#xff0c;用于展示3D模型画廊。 2. 定位&#xff1a; - 该模板作为Beautiful Things网站的延伸&#xff0c;旨在为Apple Vision Pro用户…...

Qt Remote Objects (QtRO) 笔记

简介 Qt Remote Objects (QtRO) 是 Qt 的一个进程间通信模块。 术语 Source 是指提供服务或提供功能供其他程序使用的对象&#xff0c;是 RPC 中的被调用端。 Replica 是指 Source 对象的代理对象&#xff0c;用于 RPC 中的调用端&#xff0c;对 Replica 的调用请求将被转发…...

Unity类银河恶魔城学习记录12-6.5 p128.5 Create item by Craft源代码

此章节在原视频缺失&#xff0c;此过程为根据源代码推断而来&#xff0c;并非原视频步骤 Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩…...

深度学习赋能国税局发票查验:中英文混合验证码的高效识别方案

1. 验证码识别的税务场景痛点 每次打开国税局网站查验发票时&#xff0c;那个扭曲变形的中英文混合验证码是不是让你特别头疼&#xff1f;作为财务人员&#xff0c;我每天要处理上百张发票&#xff0c;手动输入这些验证码不仅效率低下&#xff0c;还容易出错。传统OCR技术在这里…...

从零到一:构建你的第一个智能体应用实战指南

1. 为什么你需要一个智能体应用&#xff1f; 想象一下这样的场景&#xff1a;每天早上你的手机自动整理当天的重要会议和待办事项&#xff0c;根据你的日程推荐最佳出行路线&#xff1b;工作时自动汇总行业动态和关键邮件&#xff1b;晚上回家前提前打开空调并推荐符合你口味的…...

避坑指南:华为CNA VRM在VMware Workstation中的常见配置错误及解决方案

华为CNA VRM在VMware Workstation中的实战避坑手册 在虚拟化技术快速发展的今天&#xff0c;越来越多的企业选择在本地环境中搭建云计算平台进行测试和开发。华为的Cloud Native Architecture&#xff08;CNA&#xff09;和Virtual Resource Manager&#xff08;VRM&#xff09…...

逆向工程实战:从V8引擎角度破解JavaScript无限debugger(保姆级教程)

V8引擎深度解析&#xff1a;JavaScript调试机制与安全实践 在JavaScript开发领域&#xff0c;调试器(debugger)是开发者日常工作中不可或缺的工具。作为Chrome浏览器和Node.js的核心引擎&#xff0c;V8对debugger关键字的处理机制直接影响着开发者的调试体验。本文将深入探讨V8…...

动态规划专练:力扣第509、70、746题

由于对动态规划DP算法 掌握得不是很好&#xff0c;所以决定进行动态规划专项训练。动态规划五部曲①确定dp[i]含义②递推公式③dp数组如何初始化④遍历顺序⑤打印dp数组&#xff08;debug&#xff09;除了第五条在力扣上不开会员无法实现外&#xff0c;其余四项就是做出dp类型题…...

3步实现文献影响力自动化追踪:Zotero学术插件使用指南

3步实现文献影响力自动化追踪&#xff1a;Zotero学术插件使用指南 【免费下载链接】zotero-google-scholar-citation-count Zotero plugin for fetching number of citations from Google Scholar. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-google-scholar-citat…...

SenseVoice-small保姆级教程:Mac/Windows本地快速启动WebUI步骤

SenseVoice-small保姆级教程&#xff1a;Mac/Windows本地快速启动WebUI步骤 你是不是也遇到过这样的场景&#xff1f;开完会想整理录音&#xff0c;发现要上传到云端才能转文字&#xff0c;担心隐私泄露&#xff1b;或者想给视频加字幕&#xff0c;但手动打字太费时间&#xf…...

Java 新纪元 — JDK 25 + Spring Boot 4 全栈实战(十七):Boot 3 → Boot 4 迁移避坑指南——那些文档不会告诉你的迁移血泪史

系列导航 | ← 上一篇:D16 Spring Boot 4 + AI推理后端集成 | 下一篇:D18 云原生部署:Docker + K8s + GraalVM → 适用读者:正在从 Spring Boot 3.x 升级到 4.x 的开发者,或在评估升级可行性的架构师。 前置知识:熟悉 Spring Boot 3.x 开发,了解 JDK 21+ 基本特性。 本文…...

MedGemma-X实战体验:像医生一样提问,AI智能回答

MedGemma-X实战体验&#xff1a;像医生一样提问&#xff0c;AI智能回答 1. 引言&#xff1a;当AI学会“看”和“说” 想象一下&#xff0c;你是一位放射科医生&#xff0c;面对一张复杂的胸部X光片&#xff0c;心中闪过几个疑问&#xff1a;“右肺中叶的阴影是炎症还是陈旧性…...

GitHub中文界面插件:3分钟告别英文障碍,专注代码协作

GitHub中文界面插件&#xff1a;3分钟告别英文障碍&#xff0c;专注代码协作 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 你是否曾…...