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

news/2024/5/18 22:43:14 标签: java, spring boot, postgresql, jdbc

 一、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中加上连接池配置 

javascript">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连接类 

java">
    private final JdbcTemplate jdbcTemplate;//连接变量

    @Autowired
    public testController(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;//赋予权限
    }

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

java"> /**
     * 无参数获取数据方式
     * **/
    @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、单个参数查询数据方式。

java"> /**
     * 单个参数获取数据方式
     * **/
    @GetMapping("/getselectId")
    public IMXResponse  getselectId(@RequestParam(name = "id", defaultValue = "") String id)throws Exception {

        System.out.print(id);//f36264bd-b68f-4183-8aac-9de96b0f832a

        IMXResponse 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、多个参数获取数据方式

java">/**
     * 多个参数获取数据方式
     * **/
    @GetMapping("/getselectMulitId")
    public IMXResponse  getselectMulitId(@RequestParam String id,@RequestParam String billid)throws Exception {


        //http://127.0.0.1:8080/getselectMulitId?id=2211091436481667975808d1d5cc3&billid=13e9c0f11ddd4c1c81fe222a73364252
        System.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方法调用 

java"> /**
     * 传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 完整代码:

java">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;

    @Autowired
    public 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-9de96b0f832a

        IMXResponse 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=13e9c0f11ddd4c1c81fe222a73364252
        System.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博客


http://www.niftyadmin.cn/n/5475544.html

相关文章

vue的 blob文件下载文件时,后端自定义异常,并返回json错误提示信息,前端捕获信息并展示给用户

1.后端返回的json数据结构为&#xff1a; {"message":"下载失败&#xff0c;下载文件不存在&#xff0c;请联系管理员处理&#xff01;","code":500} 2.vue 请求后台接口返回的 Blob数据 3.问题出现的原因是&#xff0c;正常其他数据列表接口&…

LeetCode16. 最接近的三数之和(Java)

题目&#xff1a; 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1&#xff1a; 输入&#xff1a;nums [-1,2,1,-4], target 1…

创建型模式--1.单例模式【巴基速递】

1. 巴基的订单 在海贼世界中&#xff0c;巴基速递是巴基依靠手下强大的越狱犯兵力&#xff0c;组建的集团海贼派遣公司&#xff0c;它的主要业务是向世界有需要的地方输送雇佣兵&#xff08;其实是不干好事儿&#xff09;。 自从从特拉法尔加罗和路飞同盟击败了堂吉诃德家族 &…

zdpdjango_argonadmin使用Django开发一个美观的后台管理系统

初始代码 安装依赖 pip install -r requirements.txt生成管理员账户 迁移模型&#xff1a; python manage.py makemigrations python manage.py migrate创建超级用户&#xff1a; python manage.py createsuperuser启动服务 python manage.py runserver浏览器访问&#xf…

学生护眼大路灯怎么选?适合学生入手的大路灯推荐

大路灯在我们的日常生活中起着举足轻重的作用&#xff0c;它能够轻松的提供舒适健康的的光线&#xff0c;让我们的学习环境变得更加舒适和清新。但现在的照明市场上充斥着一些质量不加、存在安全隐患的大路灯产品&#xff0c;选择一款性能优良、高品质的大路灯并不是一件容易的…

51单片机之串口通信

目录 1.串口简介 1.1TXD和RXD 1.2通讯接口 1.3通信方式 1.4 51单片机的UART模式 2.串口配置 2.1寄存器简介 SCON寄存器配置 PCON配置 2.2代码配置串口 2.2.1 配置串口发送数据 2.2.2配置电脑向单片机发送数据点亮LED 1.串口简介 串口是一个应用十分广泛的通讯接口&am…

RabbitMQ的交换机与队列

一、流程 首先先介绍一个简单的一个消息推送到接收的流程&#xff0c;提供一个简单的图 黄色的圈圈就是我们的消息推送服务&#xff0c;将消息推送到 中间方框里面也就是 rabbitMq的服务器&#xff0c;然后经过服务器里面的交换机、队列等各种关系&#xff08;后面会详细讲&am…

多线程(java学习)

一、线程相关概念 1.单线程&#xff1a;同一个时刻&#xff0c;只允许执行一个线程 2.多线程&#xff1a;同一个时刻可执行多个线程 3.并发&#xff1a;同一时刻&#xff0c;多个任务交替执行&#xff0c;造成一种“貌似同时”的错觉&#xff0c;简单的说&#xff0c;单核cp…