【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…...
基于单片机光伏太阳能跟踪系统设计
**单片机设计介绍,基于单片机光伏太阳能跟踪系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机光伏太阳能跟踪系统的设计,旨在通过单片机技术实现对光伏太阳能设备的自动跟踪,以提高太阳…...
Stable Diffusion 本地化部署
一、前言 最近在家背八股文背诵得快吐了,烦闷的时候,看到使用 AI 进行作图,可以使用本地话部署。刚好自己家里的电脑,之前买来玩暗黑4,配置相对来说来可以,就拿来试试。 此篇是按照 Github 上的 stable-d…...
C++ Algorithm 常用算法
C <algorithm> 头文件是标准库中提供的一系列算法,用于操作范围(range)内的元素。这些算法可以用于数组、容器如vector和list,以及其他满足相应迭代器要求的数据结构。以下是一些常用的C <algorithm> 中的算法及其使用…...
线程安全--深入探究线程等待机制和死锁问题
꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转…...
量子计算获重大突破!微软和Quantinuum将量子计算错误率降低800倍,网友:AI算力的希望
量子计算迎来新突破。 近日,微软和量子计算公司Quantinuum宣布:发现了一种新的量子计算系统,可以将传统量子计算的错误率下降800倍,这让高性能量子计算机走进现实更近了一步。 自生成式AI爆发以来,算力是AI发展面临的…...
WordPress 6.5 “里贾纳”已经发布
WordPress 6.5 “里贾纳”已经发布,其灵感来自著名爵士小提琴家Regina Carter的多才多艺。雷吉娜是一位屡获殊荣的艺术家和著名的爵士乐教育家,以超越流派而闻名,她在古典音乐方面的技术基础和对爵士乐的深刻理解为她赢得了大胆超越小提琴所能…...
甲方安全建设之日志采集实操干货
前言 没有永远的安全,如何在被攻击的情况下,快速响应和快速溯源分析攻击动作是个重要的话题。想要分析攻击者做了什么、怎么攻击进来的、还攻击了谁,那么日志是必不可少的一项,因此我们需要尽可能采集多的日志来进行分析攻击者的…...
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复活”背后的数字永生:被期待成为下一个电商,培育市场认知和用户心智还需时间© 由 九派新闻 提供 数字永生,还是电子宠物?过去一个月,因包小柏用AI技术让爱女在数字世界“复活”一事,《流浪地球2…...
基于单片机钢琴电子节拍器系统设计
**单片机设计介绍,基于单片机钢琴电子节拍器系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机钢琴电子节拍器系统设计是一个综合性的项目,它结合了单片机编程、音频处理、用户界面设计等多个领域的…...
我的创作纪念日(year Ⅱ)
大家好,我是Kamen Black 君,今天我与大家简单分享一下我两年来在CSDN的创作历程。 print("祝大家每天快乐,love and peace!") 机缘 当初写博客是为了记录一些自己大学中做比赛的心得,没想到自己能走到这一步…...
应急响应实战笔记05Linux实战篇(1)
第1篇:SSH暴力破解 0x00 前言 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。SSH口令长度太短或者复杂度不够,如仅包含数字&#x…...
重装系统之后,电脑连网卡都没反应怎么办?
前言 有些电脑比较奇葩,安装完成之后会出现网卡连驱动都没有,这时候要安装电脑驱动可是真的烦躁。怎么下手呢? 如果确定电脑的网卡型号还好,直接找个电脑下载个对应的网卡驱动,用U盘复制过去就能安装。 但如果不知道…...
【三十五】【算法分析与设计】综合练习(2),22。 括号生成,77。 组合,494。 目标和,模拟树递归,临时变量自动维护树定义,递归回溯,非树结构模拟树
22. 括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n 3 输出:["((())࿰…...
QT智能指针
一.概述 Qt智能指针是一种能够在不需要手动管理内存的情况下,自动释放资源的指针。它们是C11的std::shared_ptr的一种扩展,可以用于管理Qt对象,尤其是那些不是QObject的对象。 使用智能指针可以避免内存泄露和悬垂指针等问题,同时…...
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. 技术框架概述: - Beautiful Things App Template是一个为visionOS设计的免费开源软件(FOSS),用于展示3D模型画廊。 2. 定位: - 该模板作为Beautiful Things网站的延伸,旨在为Apple Vision Pro用户…...
Qt Remote Objects (QtRO) 笔记
简介 Qt Remote Objects (QtRO) 是 Qt 的一个进程间通信模块。 术语 Source 是指提供服务或提供功能供其他程序使用的对象,是 RPC 中的被调用端。 Replica 是指 Source 对象的代理对象,用于 RPC 中的调用端,对 Replica 的调用请求将被转发…...
Unity类银河恶魔城学习记录12-6.5 p128.5 Create item by Craft源代码
此章节在原视频缺失,此过程为根据源代码推断而来,并非原视频步骤 Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩…...
UE4_如果快速做出毛玻璃效果_假景深
UE4_如果快速做出毛玻璃效果_假景深 2022-08-20 15:02 一个SpiralBlur-SceneTexture材质节点完成效果,启用半透明材质通过修改BlurAmount数值大小调整效果spiralBlur-SceneTexture custom节点,HLSL语言float3 CurColor 0;float2 BaseUV MaterialFloa…...
c# wpf LiveCharts 绑定 简单试验
1.概要 c# wpf LiveCharts 绑定 简单试验 2.代码 <Window x:Class"WpfApp3.Window2"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schem…...
【Kafka】Kafka安装、配置、使用
【Kafka】安装Kafka 1. 安装Kafka2. Kafka使用2.0 集群分发脚本xsync(重要)2.0.1 scp命令2.0.2 rsync远程同步工具2.0.3 写一个集群分发脚本xsync (Shell 脚本) 2.1 Zookeeper安装2.2 对Kafka进行分发2.2.1 执行同步脚本2.2.2 三台云主机配置Kafka环境变量 1. 安装Kafka Kafka…...
2024HW-->Wireshark攻击流量分析
在HW中,最离不开的,肯定是看监控了,那么就要去了解一些wireshark的基础用法以及攻击的流量!!!! 1.Wireshark的基本用法 比如人家面试官给你一段流量包,你要会用 1.分组详情 对于我…...
Lafida多目数据集实测
Lafida 数据集 paper:J. Imaging | Free Full-Text | LaFiDa—A Laserscanner Multi-Fisheye Camera Dataset 官网数据:https://www.ipf.kit.edu/english/projekt_cv_szenen.php 官网:KIT-IPF-Software and Datasets - LaFiDa 标定数据下载&…...
excel wps中编码格式转换
EXCEL报表:另存为CSV格式,转换成UTF-8编码 - 简书 (jianshu.com) 经验证管用...
【游戏分析】非游戏领空追字符串来源
通过NPC名称找NPC数组 扫描 NPC名字 ASIC型 发现全部都有后缀 那么采用 字节集的方式去扫描 也是扫不到 说明:不是ASIC型字符串 扫描 NPC名字 Unicode型 没有结果 那么转换成字节集去扫描 终于发现结果了 把结果挨个修改字符串 发现 其中两个是可以用的 22和23 …...
golang 数组和切片
区别 1.数组长度固定,切片长度可变 2.数组是深拷贝,切片是浅拷贝,切片是引用类型 扩容规则 不同版本不一样 https://www.jb51.net/article/280481.htm#_lab2_2_1 go1.18 1.如果期望容量大于当前容量的两倍就会使用期望容量; 2.如…...
物联网实战--入门篇之(九)安卓QT--开发框架
目录 一、QT简介 二、开发环境 三、编码风格 四、设计框架 五、总结 一、QT简介 QT是一款以C为基础的开发工具,已经包含了很多常用的库,除了基本的GUI以外,还有网络、数据库、多媒体、进程通信、串口、蓝牙等常用库,开发起来…...
【leetcode面试经典150题】16.接雨水(C++)
【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…...
网站开发项目比赛/百度推广网站平台
1. 问题描述: 有 N 种物品和一个容量是 V 的背包。第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。 输入格式 第一行两…...
阿里巴巴的免费b2b网站/北京网站优化步骤
zDiaLog弹出层 立即下载插件描述:zDiaLog弹出层弹出框: 代替window.open、window.alert、window.confirm;提供良好的用户体验;水晶质感,设计细腻,外观漂亮;兼容ie6/7/8、firefox2/3、Opera&…...
2018年网站开发/广州网站优化公司如何
数据库和client在不同的机器之上。 在安装之前,在安装Oracle数据库的server上导航到以下的文件夹。 将listener.ora和tnsnames.ora中的host中的localhost都改为机器的IP地址,我的为192.168.1.102 而后開始安装Oracleclient 选择定制,能够自定…...
绵阳网站建设怎么做/百度指数总结
mybatis 使用annotation进行批量插入和删除,mysql 和oracle不同,因为oracle不支持(xxx,xxx,xxx),(xxx,xxx,xxx)的写法。不多说了看代码。/*** 文件名:User.java** 版本信息:* 日期:2012-8-28* Copyright 足下 Corporat…...
比较知名的企业/衡水网站seo
目 录 实验一 数据库的创建 实验二 使用SQL语句创建和删除基本表 实验三 数据更新操作 实验四 数据库的分离和附加 测试数据: 参考命令: 实验一 数据库的创建 一. 实验目的: 1. 了解SQL Server数据库的环境。 2. 掌握使用SQL 语句…...
商城网站规划/广州网页搜索排名提升
文章目录requests库一、 基本概念1、 简介2、 获取3、 http 协议3.1 URL3.2 常用 http 请求方法二、 使用方法1、 基本语法requests 库中的方法2、 具体使用方法2.1 get2.1.1 基本语法2.1.2 常用参数2.2 post2.2.1 基本语法2.2.2 常用参数2.3 response2.4 head2.4.1 基本语法2.…...