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

SpringBoot连接PostgreSQL+MybatisPlus入门案例

项目结构

一、Java代码

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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>jdservice</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.0.3.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.0.3.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.postgresql/postgresql --><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.6.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency><!--mybatis‐plus的springboot支持--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.1.0</version></dependency></dependencies>
</project>

controller层

package org.example.jd.controller;import org.example.jd.pojo.TUser;
import org.example.jd.service.TUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@CrossOrigin(origins = "http://localhost:8080")
@RestController
public class UserController {@Autowiredprivate TUserService tUserService;@PostMapping("/api/userLogin")public String login(@RequestBody TUser tUser) {// 实际业务逻辑处理String username = tUser.getUsername();String password = tUser.getPassword();// 这里可以进行用户名密码验证等操作System.out.println("========Login successful=====");System.out.println(username + "," + password);return "Login successful"; // 返回登录成功信息或者其他响应}@GetMapping("/api/getUserList")public List<TUser> getUserList() {List<TUser> tUserList = tUserService.getUserList();return tUserList;}}

mapper层

package org.example.jd.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.example.jd.pojo.TUser;public interface TUserMapper extends BaseMapper<TUser> { //参数为实体类}

pojo层

package org.example.jd.pojo;import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.time.LocalDate;@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("tuser")   //指定数据库表
public class TUser {@TableId(value = "uid") //指定主键private int uid;private String username;private String password;private int age;private String gender;private LocalDate birthday;private String address;
}

service层

TUserService 

package org.example.jd.service;import org.example.jd.pojo.TUser;import java.util.List;public interface TUserService {List<TUser> getUserList();
}

TUserServiceImp 

package org.example.jd.service;import org.example.jd.mapper.TUserMapper;
import org.example.jd.pojo.TUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class TUserServiceImp implements TUserService {@Autowiredprivate TUserMapper tUserMapper;@Overridepublic List<TUser> getUserList() {return tUserMapper.selectList(null);}
}

Application启动类

package org.example.jd;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("org.example.jd.mapper") //扫描mapper层
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

TUserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--namespace是mapper层对应的接口名-->
<mapper namespace="org.example.jd.mapper.TUserMapper"><!--id是mapper层对应的接口名中对应的方法名-->
<!--    <select id="myFindUserById" resultType="User">-->
<!--        select *-->
<!--        from tb_user-->
<!--        where id = #{id}-->
<!--    </select>-->
</mapper>

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--设置驼峰匹配,MybatisPlus默认开启驼峰匹配--><!--    <settings>--><!--        <setting name="mapUnderscoreToCamelCase" value="true"/>--><!--    </settings>--></configuration>

application.yml配置文件

server:port: 8090
spring:datasource:url: jdbc:postgresql://localhost:5432/myjdusername: postgrespassword: 123456driver-class-name: org.postgresql.Driver#设置mybatis-plus
mybatis-plus:config-location: classpath:mybatis/mybatis-config.xml  #配置文件mapper-locations: classpath:mybatis/mapper/*.xml  #设置mapper层对应的接口对应的mapper.xml的路径type-aliases-package: org.example.jd.pojo  #设置别名,mapper.xml中resultType="org.example.jd.pojo.TUser"可省去包,即resultType="TUser"#开启自动驼峰映射,注意:配置configuration.map-underscore-to-camel-case则不能配置config-location,可写到mybatis-config.xml中
#  configuration:
#    map-underscore-to-camel-case: true

二、SQL

/*Navicat Premium Data TransferSource Server         : myPgSQLSource Server Type    : PostgreSQLSource Server Version : 160003 (160003)Source Host           : localhost:5432Source Catalog        : myjdSource Schema         : publicTarget Server Type    : PostgreSQLTarget Server Version : 160003 (160003)File Encoding         : 65001Date: 19/07/2024 22:15:18
*/-- ----------------------------
-- Table structure for tuser
-- ----------------------------
DROP TABLE IF EXISTS "public"."tuser";
CREATE TABLE "public"."tuser" ("uid" int4 NOT NULL,"username" varchar(255) COLLATE "pg_catalog"."default","age" int4,"gender" varchar(1) COLLATE "pg_catalog"."default","birthday" date,"address" varchar(255) COLLATE "pg_catalog"."default","password" varchar(255) COLLATE "pg_catalog"."default"
)
;-- ----------------------------
-- Records of tuser
-- ----------------------------
INSERT INTO "public"."tuser" VALUES (1, 'jack', 24, '男', '2021-10-19', '深圳', '123');-- ----------------------------
-- Primary Key structure for table tuser
-- ----------------------------
ALTER TABLE "public"."tuser" ADD CONSTRAINT "user_pkey" PRIMARY KEY ("uid");

三、运行

浏览器或者postman请求地址。

注意:浏览器只能测试get请求,如果有put、post、delete请使用postman测试。

http://localhost:8090/api/getUserList

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 昇思25天学习打卡营第18天|Pix2Pix实现图像转换
  • 前端组件化探索与实践:Vue自定义暂无数据组件的开发与应用
  • CV12_ONNX转RKNN模型(谛听盒子)
  • 深度学习每周学习总结N4:中文文本分类-Pytorch实现(基本分类(熟悉流程)、textCNN分类(通用模型)、Bert分类(模型进阶))
  • tcp协议下的socket函数
  • DICOM CT\MR片子免费在线查看工具;python pydicom包加载查看;mayavi 3d查看
  • vxe-弹窗初始化激活选中Vxe-Table表格中第一行input输入框
  • debian 更新源
  • Spring Boot集成SFTP快速入门Demo
  • 独立站外链如何影响搜索引擎排名?
  • AI算法17-贝叶斯岭回归算法Bayesian Ridge Regression | BRR
  • C/C++ json库
  • 如何在电脑上演示手机上APP,远程排查移动端app问题
  • C#数字医学影像系统(RIS/PACS)源码,Oracle数据库,C/S架构,运行稳定
  • 入坑树莓派(2)——树莓派4B与手机蓝牙通信
  • 【Leetcode】101. 对称二叉树
  • 2019年如何成为全栈工程师?
  • input的行数自动增减
  • JAVA 学习IO流
  • jquery cookie
  • Python_OOP
  • Redis字符串类型内部编码剖析
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 编写高质量JavaScript代码之并发
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 关于Flux,Vuex,Redux的思考
  • 缓存与缓冲
  • 看域名解析域名安全对SEO的影响
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 如何胜任知名企业的商业数据分析师?
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 深度解析利用ES6进行Promise封装总结
  • 跳前端坑前,先看看这个!!
  • 写代码的正确姿势
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 阿里云API、SDK和CLI应用实践方案
  • ​​​【收录 Hello 算法】9.4 小结
  • $nextTick的使用场景介绍
  • (2)MFC+openGL单文档框架glFrame
  • (javascript)再说document.body.scrollTop的使用问题
  • (八)c52学习之旅-中断实验
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (十)T检验-第一部分
  • (算法)硬币问题
  • (万字长文)Spring的核心知识尽揽其中
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • *1 计算机基础和操作系统基础及几大协议
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .Net 代码性能 - (1)
  • .NET 项目中发送电子邮件异步处理和错误机制的解决方案
  • .net6 webapi log4net完整配置使用流程
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • /var/log/cvslog 太大