SpringBoot连接PostgreSQL+MybatisPlus入门案例

打印 上一主题 下一主题

主题 545|帖子 545|积分 1635

项目结构


一、Java代码

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <modelVersion>4.0.0</modelVersion>
  6.     <groupId>org.example</groupId>
  7.     <artifactId>jdservice</artifactId>
  8.     <version>1.0-SNAPSHOT</version>
  9.     <properties>
  10.         <maven.compiler.source>8</maven.compiler.source>
  11.         <maven.compiler.target>8</maven.compiler.target>
  12.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  13.     </properties>
  14.     <dependencies>
  15.         <dependency>
  16.             <groupId>org.springframework.boot</groupId>
  17.             <artifactId>spring-boot-starter-web</artifactId>
  18.             <version>2.0.3.RELEASE</version>
  19.         </dependency>
  20.         <dependency>
  21.             <groupId>org.springframework.boot</groupId>
  22.             <artifactId>spring-boot-starter</artifactId>
  23.             <version>2.0.3.RELEASE</version>
  24.         </dependency>
  25.         <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
  26.         <dependency>
  27.             <groupId>org.postgresql</groupId>
  28.             <artifactId>postgresql</artifactId>
  29.             <version>42.6.0</version>
  30.         </dependency>
  31.         <dependency>
  32.             <groupId>org.projectlombok</groupId>
  33.             <artifactId>lombok</artifactId>
  34.             <version>1.18.12</version>
  35.         </dependency>
  36.         <!--mybatis‐plus的springboot支持-->
  37.         <dependency>
  38.             <groupId>com.baomidou</groupId>
  39.             <artifactId>mybatis-plus-boot-starter</artifactId>
  40.             <version>3.1.0</version>
  41.         </dependency>
  42.     </dependencies>
  43. </project>
复制代码
controller层

  1. package org.example.jd.controller;
  2. import org.example.jd.pojo.TUser;
  3. import org.example.jd.service.TUserService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.bind.annotation.*;
  6. import java.util.List;
  7. @CrossOrigin(origins = "http://localhost:8080")
  8. @RestController
  9. public class UserController {
  10.     @Autowired
  11.     private TUserService tUserService;
  12.     @PostMapping("/api/userLogin")
  13.     public String login(@RequestBody TUser tUser) {
  14.         // 实际业务逻辑处理
  15.         String username = tUser.getUsername();
  16.         String password = tUser.getPassword();
  17.         // 这里可以进行用户名密码验证等操作
  18.         System.out.println("========Login successful=====");
  19.         System.out.println(username + "," + password);
  20.         return "Login successful"; // 返回登录成功信息或者其他响应
  21.     }
  22.     @GetMapping("/api/getUserList")
  23.     public List<TUser> getUserList() {
  24.         List<TUser> tUserList = tUserService.getUserList();
  25.         return tUserList;
  26.     }
  27. }
复制代码
mapper层

  1. package org.example.jd.mapper;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import org.example.jd.pojo.TUser;
  4. public interface TUserMapper extends BaseMapper<TUser> { //参数为实体类
  5. }
复制代码
pojo层

  1. package org.example.jd.pojo;
  2. import com.baomidou.mybatisplus.annotation.TableId;
  3. import com.baomidou.mybatisplus.annotation.TableName;
  4. import lombok.AllArgsConstructor;
  5. import lombok.Data;
  6. import lombok.NoArgsConstructor;
  7. import java.time.LocalDate;
  8. @Data
  9. @AllArgsConstructor
  10. @NoArgsConstructor
  11. @TableName("tuser")   //指定数据库表
  12. public class TUser {
  13.     @TableId(value = "uid") //指定主键
  14.     private int uid;
  15.     private String username;
  16.     private String password;
  17.     private int age;
  18.     private String gender;
  19.     private LocalDate birthday;
  20.     private String address;
  21. }
复制代码
service层

TUserService 
  1. package org.example.jd.service;
  2. import org.example.jd.pojo.TUser;
  3. import java.util.List;
  4. public interface TUserService {
  5.     List<TUser> getUserList();
  6. }
复制代码
TUserServiceImp 
  1. package org.example.jd.service;
  2. import org.example.jd.mapper.TUserMapper;
  3. import org.example.jd.pojo.TUser;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. import java.util.List;
  7. @Service
  8. public class TUserServiceImp implements TUserService {
  9.     @Autowired
  10.     private TUserMapper tUserMapper;
  11.     @Override
  12.     public List<TUser> getUserList() {
  13.         return tUserMapper.selectList(null);
  14.     }
  15. }
复制代码
Application启动类

  1. package org.example.jd;
  2. import org.mybatis.spring.annotation.MapperScan;
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;
  5. @SpringBootApplication
  6. @MapperScan("org.example.jd.mapper") //扫描mapper层
  7. public class Application {
  8.     public static void main(String[] args) {
  9.         SpringApplication.run(Application.class, args);
  10.     }
  11. }
复制代码
TUserMapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3.         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <!--namespace是mapper层对应的接口名-->
  6. <mapper namespace="org.example.jd.mapper.TUserMapper">
  7.     <!--id是mapper层对应的接口名中对应的方法名-->
  8. <!--    <select id="myFindUserById" resultType="User">-->
  9. <!--        select *-->
  10. <!--        from tb_user-->
  11. <!--        where id = #{id}-->
  12. <!--    </select>-->
  13. </mapper>
复制代码
mybatis-config.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3.         PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  4. <configuration>
  5.     <!--设置驼峰匹配,MybatisPlus默认开启驼峰匹配-->
  6.     <!--    <settings>-->
  7.     <!--        <setting name="mapUnderscoreToCamelCase" value="true"/>-->
  8.     <!--    </settings>-->
  9. </configuration>
复制代码
application.yml配置文件

  1. server:
  2.   port: 8090
  3. spring:
  4.   datasource:
  5.     url: jdbc:postgresql://localhost:5432/myjd
  6.     username: postgres
  7.     password: 123456
  8.     driver-class-name: org.postgresql.Driver
  9. #设置mybatis-plus
  10. mybatis-plus:
  11.   config-location: classpath:mybatis/mybatis-config.xml  #配置文件
  12.   mapper-locations: classpath:mybatis/mapper/*.xml  #设置mapper层对应的接口对应的mapper.xml的路径
  13.   type-aliases-package: org.example.jd.pojo  #设置别名,mapper.xml中resultType="org.example.jd.pojo.TUser"可省去包,即resultType="TUser"
  14.   #开启自动驼峰映射,注意:配置configuration.map-underscore-to-camel-case则不能配置config-location,可写到mybatis-config.xml中
  15. #  configuration:
  16. #    map-underscore-to-camel-case: true
复制代码
二、SQL

  1. /*
  2. Navicat Premium Data Transfer
  3. Source Server         : myPgSQL
  4. Source Server Type    : PostgreSQL
  5. Source Server Version : 160003 (160003)
  6. Source Host           : localhost:5432
  7. Source Catalog        : myjd
  8. Source Schema         : public
  9. Target Server Type    : PostgreSQL
  10. Target Server Version : 160003 (160003)
  11. File Encoding         : 65001
  12. Date: 19/07/2024 22:15:18
  13. */
  14. -- ----------------------------
  15. -- Table structure for tuser
  16. -- ----------------------------
  17. DROP TABLE IF EXISTS "public"."tuser";
  18. CREATE TABLE "public"."tuser" (
  19.   "uid" int4 NOT NULL,
  20.   "username" varchar(255) COLLATE "pg_catalog"."default",
  21.   "age" int4,
  22.   "gender" varchar(1) COLLATE "pg_catalog"."default",
  23.   "birthday" date,
  24.   "address" varchar(255) COLLATE "pg_catalog"."default",
  25.   "password" varchar(255) COLLATE "pg_catalog"."default"
  26. )
  27. ;
  28. -- ----------------------------
  29. -- Records of tuser
  30. -- ----------------------------
  31. INSERT INTO "public"."tuser" VALUES (1, 'jack', 24, '男', '2021-10-19', '深圳', '123');
  32. -- ----------------------------
  33. -- Primary Key structure for table tuser
  34. -- ----------------------------
  35. ALTER TABLE "public"."tuser" ADD CONSTRAINT "user_pkey" PRIMARY KEY ("uid");
复制代码
三、运行

欣赏器或者postman请求地址。
注意:欣赏器只能测试get请求,假如有put、post、delete请使用postman测试。
  1. http://localhost:8090/api/getUserList
复制代码




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

李优秀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表