0
点赞
收藏
分享

微信扫一扫

springboot2.6.1 + mybatis2.2.1 + map

boomwu 2022-01-20 阅读 75

Mybatis Select 返回 Map

一、数据库使用Postgres

1.Docker Postgres 官方数据库镜像拉取与启动:

##拉取
docker pull postgres:14.1
##启动
docker run --privileged=true -d --name pg -e POSTGRES_PASSWORD=123456 -e POSTGRES_USER=postgres -p 5432:5432 -e TZ=PRC postgres:14.1

2.数据库备份命令

/usr/bin/pg_dump  --username=postgres -h 127.0.0.1 --create  --disable-triggers  -c --if-exists zhx 1>> zhx.sql

3.备份文件内容(zhx.sql)

--
-- PostgreSQL database dump
--

-- Dumped from database version 14.1 (Debian 14.1-1.pgdg110+1)
-- Dumped by pg_dump version 14.1 (Debian 14.1-1.pgdg110+1)

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

DROP DATABASE IF EXISTS zhx;
--
-- Name: zhx; Type: DATABASE; Schema: -; Owner: postgres
--

CREATE DATABASE zhx WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE = 'en_US.utf8';


ALTER DATABASE zhx OWNER TO postgres;

\connect zhx

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

--
-- Name: zhx; Type: DATABASE PROPERTIES; Schema: -; Owner: postgres
--

ALTER DATABASE zhx CONNECTION LIMIT = 10;


\connect zhx

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

SET default_tablespace = '';

SET default_table_access_method = heap;

--
-- Name: tbl_user; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.tbl_user (
    id integer NOT NULL,
    name character varying(255),
    age integer
);


ALTER TABLE public.tbl_user OWNER TO postgres;

--
-- Data for Name: tbl_user; Type: TABLE DATA; Schema: public; Owner: postgres
--

COPY public.tbl_user (id, name, age) FROM stdin;
1	李淳风	58
2	袁天罡	98
\.


--
-- Name: tbl_user tbl_user_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY public.tbl_user
    ADD CONSTRAINT tbl_user_pkey PRIMARY KEY (id);


--
-- PostgreSQL database dump complete
--

二、工程

1.项目结构

在这里插入图片描述

2.启动类

package com.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Description: 数据库测试
 *
 * @Author: zhx & moon hongxu_1234@163.com
 * @Date: 2022-01-19 21:48
 * @version: V1.0.0
 */
@SpringBootApplication
@MapperScan("com.demo.mapper")
public class PgsqlApplication {
    public static void main(String[] args) {
        SpringApplication.run(PgsqlApplication.class,args);
    }
}

3.数据库配置

package com.demo.config;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

import javax.sql.DataSource;
import java.sql.SQLException;

/**
 * DRUID 数据库连接池类
 * @author  zhx & moon hongxu_1234@163.com
 * @date 2020/11/19 22:19
 * @version V1.0.0
 */
@Configuration
@Slf4j
@PropertySource("classpath:application-dev.yml")
public class DruidConfig {

    private static final String DB_PREFIX = "spring.datasource";

    @Component
    @ConfigurationProperties(prefix = DB_PREFIX)
    static class IDataSourceProperties {
        private String url;
        private String username;
        private String password;
        private String driverClassName;
        private int initialSize;
        private int minIdle;
        private int maxActive;
        private int maxWait;
        private int timeBetweenEvictionRunsMillis;
        private int minEvictableIdleTimeMillis;
        private String validationQuery;
        private boolean testWhileIdle;
        private boolean testOnBorrow;
        private boolean testOnReturn;
        private boolean poolPreparedStatements;
        private int maxPoolPreparedStatementPerConnectionSize;
        private String filters;
        private String connectionProperties;

        @Bean     //声明其为Bean实例
        @Primary  //在同样的DataSource中,首先使用被标注的DataSource
        public DataSource dataSource() {
            DruidDataSource datasource = new DruidDataSource();
            datasource.setUrl(url);
            datasource.setUsername(username);
            datasource.setPassword(password);
            datasource.setDriverClassName(driverClassName);

            //configuration
            datasource.setInitialSize(initialSize);
            datasource.setMinIdle(minIdle);
            datasource.setMaxActive(maxActive);
            datasource.setMaxWait(maxWait);
            datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
            datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
            datasource.setValidationQuery(validationQuery);
            datasource.setTestWhileIdle(testWhileIdle);
            datasource.setTestOnBorrow(testOnBorrow);
            datasource.setTestOnReturn(testOnReturn);
            datasource.setPoolPreparedStatements(poolPreparedStatements);
            datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
            try {
                datasource.setFilters(filters);
            } catch (SQLException e) {
                log.error("druid configuration initialization filter: " , e);
            }
            datasource.setConnectionProperties(connectionProperties);
            return datasource;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public String getUsername() {
            return username;
        }

        public void setUsername(String username) {
            this.username = username;
        }

        public String getPassword() {
            return password;
        }

        public void setPassword(String password) {
            this.password = password;
        }

        public String getDriverClassName() {
            return driverClassName;
        }

        public void setDriverClassName(String driverClassName) {
            this.driverClassName = driverClassName;
        }

        public int getInitialSize() {
            return initialSize;
        }

        public void setInitialSize(int initialSize) {
            this.initialSize = initialSize;
        }

        public int getMinIdle() {
            return minIdle;
        }

        public void setMinIdle(int minIdle) {
            this.minIdle = minIdle;
        }

        public int getMaxActive() {
            return maxActive;
        }

        public void setMaxActive(int maxActive) {
            this.maxActive = maxActive;
        }

        public int getMaxWait() {
            return maxWait;
        }

        public void setMaxWait(int maxWait) {
            this.maxWait = maxWait;
        }

        public int getTimeBetweenEvictionRunsMillis() {
            return timeBetweenEvictionRunsMillis;
        }

        public void setTimeBetweenEvictionRunsMillis(int timeBetweenEvictionRunsMillis) {
            this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
        }

        public int getMinEvictableIdleTimeMillis() {
            return minEvictableIdleTimeMillis;
        }

        public void setMinEvictableIdleTimeMillis(int minEvictableIdleTimeMillis) {
            this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
        }

        public String getValidationQuery() {
            return validationQuery;
        }

        public void setValidationQuery(String validationQuery) {
            this.validationQuery = validationQuery;
        }

        public boolean isTestWhileIdle() {
            return testWhileIdle;
        }

        public void setTestWhileIdle(boolean testWhileIdle) {
            this.testWhileIdle = testWhileIdle;
        }

        public boolean isTestOnBorrow() {
            return testOnBorrow;
        }

        public void setTestOnBorrow(boolean testOnBorrow) {
            this.testOnBorrow = testOnBorrow;
        }

        public boolean isTestOnReturn() {
            return testOnReturn;
        }

        public void setTestOnReturn(boolean testOnReturn) {
            this.testOnReturn = testOnReturn;
        }

        public boolean isPoolPreparedStatements() {
            return poolPreparedStatements;
        }

        public void setPoolPreparedStatements(boolean poolPreparedStatements) {
            this.poolPreparedStatements = poolPreparedStatements;
        }

        public int getMaxPoolPreparedStatementPerConnectionSize() {
            return maxPoolPreparedStatementPerConnectionSize;
        }

        public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) {
            this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize;
        }

        public String getFilters() {
            return filters;
        }

        public void setFilters(String filters) {
            this.filters = filters;
        }

        public String getConnectionProperties() {
            return connectionProperties;
        }

        public void setConnectionProperties(String connectionProperties) {
            this.connectionProperties = connectionProperties;
        }

        @Bean
        public ServletRegistrationBean<StatViewServlet> druidServlet() {// 主要实现web监控的配置处理
            ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<>(
                    new StatViewServlet(), "/druid/*");//表示进行druid监控的配置处理操作
            servletRegistrationBean.addInitParameter("allow", "127.0.0.1,192.168.0.12");//白名单
            servletRegistrationBean.addInitParameter("deny", "129.168.1.12");//黑名单
            servletRegistrationBean.addInitParameter("loginUsername", "root");//用户名
            servletRegistrationBean.addInitParameter("loginPassword", "123456");//密码
            servletRegistrationBean.addInitParameter("resetEnable", "false");//是否可以重置数据源
            return servletRegistrationBean;

        }

        @Bean    //监控
        public FilterRegistrationBean<WebStatFilter> filterRegistrationBean(){
            FilterRegistrationBean<WebStatFilter> filterRegistrationBean=new FilterRegistrationBean<>();
            filterRegistrationBean.setFilter(new WebStatFilter());
            filterRegistrationBean.addUrlPatterns("/*");//所有请求进行监控处理
            filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*");//排除
            return filterRegistrationBean;
        }
    }
}

4.Result处理句柄

package com.demo.mapper.session;

import org.apache.ibatis.session.ResultContext;
import org.apache.ibatis.session.ResultHandler;

import java.util.HashMap;
import java.util.Map;

/**
 * Description: 结果处理句柄
 *
 * @Author: zhx & moon hongxu_1234@163.com
 * @Date: 2022-01-19 23:06
 * @version: V1.0.0
 */
public class MapResultHandler implements ResultHandler {

    @SuppressWarnings("rawtypes")
    private final Map mappedResults = new HashMap();

    @SuppressWarnings("unchecked")
    @Override
    public void handleResult(ResultContext context) {
        @SuppressWarnings("rawtypes")
        Map map = (Map)context.getResultObject();
        // xml 配置里面的property的值,对应的列
        mappedResults.put(map.get("keys"), map.get("val") + "");
    }

    public Map getMappedResults() {
        return mappedResults;
    }
}

5.Session处理器

package com.demo.mapper.session;

import com.demo.mapper.DemoMapper;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Map;

/**
 * Description: PG SESSION
 *
 * @Author: zhx & moon hongxu_1234@163.com
 * @Date: 2022-01-19 23:00
 * @version: V1.0.0
 */
@Service
@DependsOn(value = {"dataSource"})
public class DemoSession extends SqlSessionDaoSupport {

    @Override
    @Resource
    public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
        super.setSqlSessionFactory(sqlSessionFactory);
    }

    @SuppressWarnings("unchecked")
    public Map<String,String> queryMap(){
        MapResultHandler handler = new MapResultHandler();
        this.getSqlSession().select(DemoMapper.class.getName()+".queryMap", handler);
        Map<String, String> map = handler.getMappedResults();
        return map;
    }
}

6.测试接口

package com.demo.controller;

import com.demo.mapper.session.DemoSession;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

/**
 * Description: 测试类
 *
 * @Author: zhx & moon hongxu_1234@163.com
 * @Date: 2022-01-19 23:11
 * @version: V1.0.0
 */
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {

    private DemoSession demoSession;

    @Autowired
    public void setDemoSession(DemoSession demoSession){
        this.demoSession = demoSession;
    }

    @GetMapping("/map")
    public void query(){
        try{
            Map<String,String> map = demoSession.queryMap();
            map.forEach((k,v)->{
                log.info("姓名:{} 年龄:{}",k,v);
            });
        }catch (Exception e){
            log.error("",e);
        }
    }
}

7.Map接口

package com.demo.mapper;

import java.util.Map;

/**
 * 用户登录 MAPPER
 * @author  zhx & moon hongxu_1234@163.com
 * @date 2020/11/19 22:19
 * @version V1.0.0
 */
public interface DemoMapper {

    /**
     * 查询
     * @return
     */
    Map<String,String> queryMap();
}

8.Xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
 * @author zhx & moon hongxu_1234@163.com
 * 2020/11/19 2:06
 * @version 1.0
 -->
<mapper namespace="com.demo.mapper.DemoMapper">

    <!--查询表字段-->
    <select id="queryMap" resultType="map">
        select name as keys , age as val
        from tbl_user
    </select>

</mapper>

9.Yam配置文件

application.yml

spring:
  # 环境 dev:开发环境|test:测试环境|prod:生产环境
  profiles:
    active: dev #激活的配置文件

application-dev.yml

server:
  port: 8093

spring:
  application:
    name: moon
  datasource:
    username: postgres
    password: 123456
    url: jdbc:postgresql://106.12.148.211:5432/zhx #jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
    driverClassName: org.postgresql.Driver #com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    # 下面为连接池的补充设置,应用到上面所有数据源中
    # 初始化大小,最小,最大
    initial-size: 5
    min-idle: 5
    max-active: 20
    # 配置获取连接等待超时的时间
    max-wait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    time-between-eviction-runs-millis: 60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    min-evictable-idle-time-millis: 300000
    validation-query: select version()
    test-while-idle: true
    test-on-borrow: false
    test-on-return: false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    pool-prepared-statements: true
    #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,wall用于防火墙
    max-pool-prepared-statement-per-connection-size: 20
    filters: stat,wall
    use-global-data-source-stat: true
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

#mybatis配置
mybatis:
  mapper-locations: classpath:/mapper/*.xml  #修改为对应的mapper文件路径
  #驼峰命名
  configuration:
    map-underscore-to-camel-case: true

#打印sql
logging:
  level:
    com.demo: debug

10.Pom配置

<?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 http://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.6.1</version>
        <relativePath/>
    </parent>
    <groupId>com.demo</groupId>
    <artifactId>pgdemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!--  mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.1</version>
        </dependency>
        <!-- pgsql -->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>42.2.18</scope>
        </dependency>
        <!-- druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>
    </dependencies>
</project>

三、调试

1.调用

http://127.0.0.1:8093/demo/map

2.结果

"C:\Program Files\Java\jdk-17.0.1\bin\java.exe" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:61382,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -javaagent:C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2021.2\captureAgent\debugger-agent.jar -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dfile.encoding=UTF-8 -classpath "E:\IdeaProjects\pgdemo\target\classes;D:\apache-maven-space\org\springframework\boot\spring-boot-starter-web\2.6.1\spring-boot-starter-web-2.6.1.jar;D:\apache-maven-space\org\springframework\boot\spring-boot-starter\2.6.1\spring-boot-starter-2.6.1.jar;D:\apache-maven-space\org\springframework\boot\spring-boot\2.6.1\spring-boot-2.6.1.jar;D:\apache-maven-space\org\springframework\boot\spring-boot-autoconfigure\2.6.1\spring-boot-autoconfigure-2.6.1.jar;D:\apache-maven-space\org\springframework\boot\spring-boot-starter-logging\2.6.1\spring-boot-starter-logging-2.6.1.jar;D:\apache-maven-space\ch\qos\logback\logback-classic\1.2.7\logback-classic-1.2.7.jar;D:\apache-maven-space\ch\qos\logback\logback-core\1.2.7\logback-core-1.2.7.jar;D:\apache-maven-space\org\apache\logging\log4j\log4j-to-slf4j\2.14.1\log4j-to-slf4j-2.14.1.jar;D:\apache-maven-space\org\apache\logging\log4j\log4j-api\2.14.1\log4j-api-2.14.1.jar;D:\apache-maven-space\org\slf4j\jul-to-slf4j\1.7.32\jul-to-slf4j-1.7.32.jar;D:\apache-maven-space\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\apache-maven-space\org\springframework\spring-core\5.3.13\spring-core-5.3.13.jar;D:\apache-maven-space\org\springframework\spring-jcl\5.3.13\spring-jcl-5.3.13.jar;D:\apache-maven-space\org\yaml\snakeyaml\1.29\snakeyaml-1.29.jar;D:\apache-maven-space\org\springframework\boot\spring-boot-starter-json\2.6.1\spring-boot-starter-json-2.6.1.jar;D:\apache-maven-space\com\fasterxml\jackson\core\jackson-databind\2.13.0\jackson-databind-2.13.0.jar;D:\apache-maven-space\com\fasterxml\jackson\core\jackson-annotations\2.13.0\jackson-annotations-2.13.0.jar;D:\apache-maven-space\com\fasterxml\jackson\core\jackson-core\2.13.0\jackson-core-2.13.0.jar;D:\apache-maven-space\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.0\jackson-datatype-jdk8-2.13.0.jar;D:\apache-maven-space\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.0\jackson-datatype-jsr310-2.13.0.jar;D:\apache-maven-space\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.0\jackson-module-parameter-names-2.13.0.jar;D:\apache-maven-space\org\springframework\boot\spring-boot-starter-tomcat\2.6.1\spring-boot-starter-tomcat-2.6.1.jar;D:\apache-maven-space\org\apache\tomcat\embed\tomcat-embed-core\9.0.55\tomcat-embed-core-9.0.55.jar;D:\apache-maven-space\org\apache\tomcat\embed\tomcat-embed-el\9.0.55\tomcat-embed-el-9.0.55.jar;D:\apache-maven-space\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.55\tomcat-embed-websocket-9.0.55.jar;D:\apache-maven-space\org\springframework\spring-web\5.3.13\spring-web-5.3.13.jar;D:\apache-maven-space\org\springframework\spring-beans\5.3.13\spring-beans-5.3.13.jar;D:\apache-maven-space\org\springframework\spring-webmvc\5.3.13\spring-webmvc-5.3.13.jar;D:\apache-maven-space\org\springframework\spring-aop\5.3.13\spring-aop-5.3.13.jar;D:\apache-maven-space\org\springframework\spring-context\5.3.13\spring-context-5.3.13.jar;D:\apache-maven-space\org\springframework\spring-expression\5.3.13\spring-expression-5.3.13.jar;D:\apache-maven-space\org\springframework\boot\spring-boot-configuration-processor\2.6.1\spring-boot-configuration-processor-2.6.1.jar;D:\apache-maven-space\org\projectlombok\lombok\1.18.22\lombok-1.18.22.jar;D:\apache-maven-space\com\alibaba\fastjson\1.2.70\fastjson-1.2.70.jar;D:\apache-maven-space\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.2.1\mybatis-spring-boot-starter-2.2.1.jar;D:\apache-maven-space\org\springframework\boot\spring-boot-starter-jdbc\2.6.1\spring-boot-starter-jdbc-2.6.1.jar;D:\apache-maven-space\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;D:\apache-maven-space\org\slf4j\slf4j-api\1.7.32\slf4j-api-1.7.32.jar;D:\apache-maven-space\org\springframework\spring-jdbc\5.3.13\spring-jdbc-5.3.13.jar;D:\apache-maven-space\org\springframework\spring-tx\5.3.13\spring-tx-5.3.13.jar;D:\apache-maven-space\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.2.1\mybatis-spring-boot-autoconfigure-2.2.1.jar;D:\apache-maven-space\org\mybatis\mybatis\3.5.9\mybatis-3.5.9.jar;D:\apache-maven-space\org\mybatis\mybatis-spring\2.0.6\mybatis-spring-2.0.6.jar;D:\apache-maven-space\org\postgresql\postgresql\42.3.1\postgresql-42.3.1.jar;D:\apache-maven-space\org\checkerframework\checker-qual\3.5.0\checker-qual-3.5.0.jar;D:\apache-maven-space\com\alibaba\druid\1.1.16\druid-1.1.16.jar;D:\Program Files\JetBrains\IntelliJ IDEA 2020.2.3\lib\idea_rt.jar" com.demo.PgsqlApplication
Java HotSpot(TM) 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
Connected to the target VM, address: '127.0.0.1:61382', transport: 'socket'
Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.6.1)

2022-01-20 00:42:51.118  INFO 3692 --- [           main] com.demo.PgsqlApplication                : Starting PgsqlApplication using Java 17.0.1 on zhx_yue with PID 3692 (E:\IdeaProjects\pgdemo\target\classes started by Administrator in E:\IdeaProjects\pgdemo)
2022-01-20 00:42:51.120 DEBUG 3692 --- [           main] com.demo.PgsqlApplication                : Running with Spring Boot v2.6.1, Spring v5.3.13
2022-01-20 00:42:51.120  INFO 3692 --- [           main] com.demo.PgsqlApplication                : The following profiles are active: dev
2022-01-20 00:42:51.611  INFO 3692 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8093 (http)
2022-01-20 00:42:51.616  INFO 3692 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-01-20 00:42:51.616  INFO 3692 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.55]
2022-01-20 00:42:51.656  INFO 3692 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2022-01-20 00:42:51.657  INFO 3692 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 512 ms
2022-01-20 00:42:51.989  INFO 3692 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8093 (http) with context path ''
2022-01-20 00:42:51.994  INFO 3692 --- [           main] com.demo.PgsqlApplication                : Started PgsqlApplication in 1.08 seconds (JVM running for 1.537)
2022-01-20 01:07:12.799  INFO 3692 --- [nio-8093-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-01-20 01:07:12.800  INFO 3692 --- [nio-8093-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2022-01-20 01:07:12.801  INFO 3692 --- [nio-8093-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
2022-01-20 01:07:13.418  INFO 3692 --- [nio-8093-exec-1] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
2022-01-20 01:07:13.422 DEBUG 3692 --- [nio-8093-exec-1] com.demo.mapper.DemoMapper.queryMap      : ==>  Preparing: select name as keys , age as val from tbl_user
2022-01-20 01:07:13.465 DEBUG 3692 --- [nio-8093-exec-1] com.demo.mapper.DemoMapper.queryMap      : ==> Parameters: 
2022-01-20 01:07:13.490 DEBUG 3692 --- [nio-8093-exec-1] com.demo.mapper.DemoMapper.queryMap      : <==      Total: 2
2022-01-20 01:07:13.492  INFO 3692 --- [nio-8093-exec-1] com.demo.controller.DemoController       : 姓名:袁天罡 年龄:98
2022-01-20 01:07:13.492  INFO 3692 --- [nio-8093-exec-1] com.demo.controller.DemoController       : 姓名:李淳风 年龄:58

举报

相关推荐

0 条评论