当前位置:首页 > 技术文章 > 正文内容

Spring Boot 整合PostgerSQL,通过MyBatis+Druid来实现数据访问?

arlanguage1个月前 (03-28)技术文章21

在Spring Boot项目中想要整合PostgreSQL来实现数据存储操作,可以通过MyBatis和Druid来实现数据库连接访问操作。下面我们就来看看具体的操作步骤。

添加依赖

想要实现上面的需求,需要在SpringBoot项目中,添加如下的一些配置依赖。

  • Spring Web
  • Spring Data JPA
  • PostgreSQL Driver
  • MyBatis Framework
  • Druid

在pom.xml文件中添加上面的这些依赖配置,如下所示。


    
    
        org.springframework.boot
        spring-boot-starter-web
    

    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    

    
    
        org.postgresql
        postgresql
        42.2.18
    

    
    
        org.mybatis.spring.boot
        mybatis-spring-boot-starter
        2.1.4
    

    
    
        com.alibaba
        druid-spring-boot-starter
        1.2.5
    

配置数据库连接

由于使用Druid所以数据库的整体配置会比较复杂,可以按照如下的方式来进行配置。

spring:
  datasource:
    druid:
      driver-class-name: org.postgresql.Driver
      url: jdbc:postgresql://localhost:5432/your_database_name
      username: your_database_username
      password: your_database_password
      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 1
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      filters: stat,wall,log4j
      connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        reset-enable: false
        login-username: admin
        login-password: admin
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"

配置完成之后,接下来就是需要实现MyBatis的相关配置操作,如下所示。

配置MyBatis

创建实体类对象

package com.example.demo.model;

public class User {
    private Long id;
    private String name;
    private String email;

    // getters and setters
}

创建MyBatis的Mapper接口和对应的XML映射文件,如下所示。

package com.example.demo.mapper;

import com.example.demo.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper {
    
    @Select("SELECT * FROM users")
    List findAll();
}

在resources/mapper目录下创建UserMapper.xml文件。




    

配置MyBatis扫描

在Spring Boot应用的启动类中添加@MapperScan注解,然后来扫描相关的Mapper文件来进行MyBatis数据的调用。

package com.example.demo;

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

@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

创建服务类和控制器

创建服务类和控制器类,来处理客户端的HTTP请求。如下所示。

服务层对象

package com.example.demo.service;

import com.example.demo.mapper.UserMapper;
import com.example.demo.model.User;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    
    private final UserMapper userMapper;

    public UserService(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    public List findAll() {
        return userMapper.findAll();
    }
}

控制层对象

package com.example.demo.controller;

import com.example.demo.model.User;
import com.example.demo.service.UserService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {
    
    private final UserService userService;

    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping("/users")
    public List getAllUsers() {
        return userService.findAll();
    }
}

总结

创建完成之后,我们就可以运行SpringBoot项目,然后调用users接口就可以看到从PostgreSQL数据库中获取到的数据,上面只是一个简单的连接PostgreSQL来访问数据库的实现,在实际操作过程中,可以根据需求来实现很多的自定义的扩展操作。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/3646.html

分享给朋友:

“Spring Boot 整合PostgerSQL,通过MyBatis+Druid来实现数据访问?” 的相关文章

nginx 概述以及学习

假设你是一名网站管理员,你的网站每天都有数百万次的访问量,但是最近你发现有些用户反映访问速度很慢,甚至会出现连接超时的错误。你怀疑是服务器负载过高导致的,因此决定使用nginx作为反向代理服务器来优化网站的性能。你打算将nginx部署在一台独立的服务器上,并将所有的客户端请求通过nginx进行分发和...

Nginx集群搭建 nginx keepalived集群

Nginx负载均衡环境:四台虚拟机、系统Centos7.9、NginxHostnameIp说明lb192.168.133.142Nginx主负载均衡器rs1192.168.133.130Web服务器1rs2192.168.133.137Web服务器2Client192.168.133.139客户端—...

Nginx 问题以及对应的解决方案

1. Nginx 无法启动当 Nginx 无法启动时,通常是由于以下几个原因导致的:配置文件有误。可以通过运行 nginx -t 命令检查配置文件是否存在语法错误。端口被占用。可以通过运行 netstat -tlnp 命令查看当前系统中占用该端口的进程,并将其停止或更改端口。缺少权限。Nginx 可...

使用nginx对视频、音频、图片等静态资源网址,加token签权

目前很多静态资源,都可以无权限验证,进行访问或转发,对有价值的资源进行签权,限制转发无法在代码中实现拦截,我们可以使用nginx对视频、音频、图片等静态资源网址,加token签权如:http://192.168.1.22/123.mp3http://192.168.1.22/123.m3u8http...

Nginx负载均衡安全配置说明2 nginx负载均衡配置文件

上一节,我们对Nginx安全配置的几个知识点做了一个说明,例如限制IP访问、文件目录禁止访问限制、需要防止DOS攻击、请求方法的限制和限制文件上传的大小这个进行了一个分析说明,详细的文章请关注我的头条号:一点热,在里面看回之前的文章,快速入口Nginx负载均衡的一些安全配置说明其实,配置Nginx的...

一般人绝对无法发现的nginx锅

nginx热启动:nginx -s reloadPS:要在/etc/profile环境变量PATH里配置nginx的路径。配置完执行 source /etc/profile 让变量生效。 一次部署,同样的前端代码,放到了nginx里面运行,但是有一个模块全部页面都报这个错误,其他模块正常展示。以前遇...