最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合Mybatis-Plus實(shí)現(xiàn)微信注冊(cè)登錄的示例代碼

 更新時(shí)間:2024年02月28日 15:39:35   作者:Blet-  
微信是不可或缺的通訊工具,本文主要介紹了SpringBoot整合Mybatis-Plus實(shí)現(xiàn)微信注冊(cè)登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下

前言:

隨著互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,微信已成為人們?nèi)粘I詈凸ぷ髦胁豢扇鄙俚耐ㄓ嵐ぞ咧?。在這個(gè)背景下,將微信用戶(hù)注冊(cè)和登錄功能整合到自己應(yīng)用中,成為了越來(lái)越多開(kāi)發(fā)者所關(guān)注的問(wèn)題。本文將詳細(xì)介紹如何使用SpringBoot和Mybatis-Plus快速搭建微信注冊(cè)、登錄功能,并通過(guò)Vue實(shí)現(xiàn)優(yōu)美的前端頁(yè)面。

一、技術(shù)棧選擇

在開(kāi)始開(kāi)發(fā)之前,我們需要選擇一組適合的技術(shù)棧。本文中,我們將使用以下主要技術(shù):

  • SpringBoot:為開(kāi)發(fā)提供快速、簡(jiǎn)單的企業(yè)級(jí)應(yīng)用程序開(kāi)發(fā)框架。
  • Mybatis-Plus:一種基于Mybatis的增強(qiáng)工具,通過(guò)自動(dòng)生成代碼可極大地提高開(kāi)發(fā)效率。
  • Vue:一個(gè)輕量級(jí)的JavaScript框架,用于開(kāi)發(fā)單頁(yè)應(yīng)用程序。

二、環(huán)境搭建

1. 數(shù)據(jù)庫(kù)設(shè)計(jì)

我們首先需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫(kù),用來(lái)存儲(chǔ)用戶(hù)信息和登錄憑證。假設(shè)我們要存儲(chǔ)用戶(hù)的微信OpenID和登錄憑證,可以按照以下步驟創(chuàng)建名為 “wechat_login” 的數(shù)據(jù)庫(kù)

CREATE DATABASE wechat_login;

USE wechat_login;

-- 創(chuàng)建用戶(hù)表
CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `open_id` varchar(50) NOT NULL COMMENT '微信OpenID',
  `credential` varchar(50) NOT NULL COMMENT '登錄憑證',
  `create_time` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶(hù)表';

2. SpringBoot項(xiàng)目創(chuàng)建

我們使用Spring Initializr創(chuàng)建一個(gè)SpringBoot項(xiàng)目,并引入相關(guān)依賴(lài):Mybatis-Plus、MySQL驅(qū)動(dòng)和Swagger2。可以將以下依賴(lài)項(xiàng)添加到pom.xml文件中:

<dependencies>
    <!--Mybatis-Plus-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.2</version>
    </dependency>
    <!-- MySQL驅(qū)動(dòng)程序 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.20</version>
    </dependency>
    <!--Swagger2-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency>
</dependencies>

創(chuàng)建好SpringBoot項(xiàng)目后,我們需要在application.properties文件中添加數(shù)據(jù)庫(kù)連接信息

# 數(shù)據(jù)庫(kù)連接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/wechat_login?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

# Mybatis配置
# 配置Mapper的掃描路徑
mybatis-plus.mapper-locations=classpath:mapper/*.xml
# 開(kāi)啟實(shí)體注解掃描
mybatis-plus.typeAliasesPackage=com.springboot.mybatismplus.entity
# 開(kāi)啟邏輯刪除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
mybatis-plus.global-config.refresh=true

# swagger-ui配置
# 訪問(wèn)路徑:http://localhost:8080/swagger-ui.html
swagger.title=Spring Boot Example
swagger.description=Spring Boot Example API Document
swagger.version=1.0.0
swagger.controller.package=com.springboot.mybatismplus.controller

3. Entity設(shè)計(jì)

在設(shè)計(jì)Entity時(shí),我們需要根據(jù)用戶(hù)表的定義,創(chuàng)建一個(gè)對(duì)應(yīng)的Java實(shí)體類(lèi)。以下是一個(gè)簡(jiǎn)單的UserEntity示例:

public class UserEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type= IdType.AUTO)
    private Long id;

    @TableField("open_id")
    private String openId;

    private String credential;

    @TableField("create_time")
    private LocalDateTime createTime;

    // getters and setters
}

這里我們使用了Mybatis-Plus提供的注解功能,將實(shí)體類(lèi)的屬性和數(shù)據(jù)庫(kù)表的字段名進(jìn)行了映射,并使用了Lombok插件自動(dòng)生成了getter和setter方法。

4. Mapper設(shè)計(jì)

在設(shè)計(jì)Mapper時(shí),我們可以使用Mybatis-Plus提供的BaseMapper抽象類(lèi),并繼承它,實(shí)現(xiàn)對(duì)應(yīng)的方法。以下是一個(gè)簡(jiǎn)單的UserMapper示例:

public interface UserMapper extends BaseMapper<UserEntity> {

    /**
     * 根據(jù)OpenID查詢(xún)用戶(hù)信息
     */
    UserEntity selectByOpenId(String openId);

}

我們可以看到,我們只需要將UserEntity作為泛型傳入BaseMapper中,就可以輕松地實(shí)現(xiàn)CURD操作。

5. Service設(shè)計(jì)

在設(shè)計(jì)Service時(shí),我們需要注入Mapper,實(shí)現(xiàn)相應(yīng)的業(yè)務(wù)方法。以下是一個(gè)簡(jiǎn)單的UserService示例:

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> implements UserService {

    @Autowired
    private UserMapper userMapper;

    /**
     * 根據(jù)OpenID查詢(xún)用戶(hù)信息
     */
    @Override
    public UserEntity selectByOpenId(String openId) {
        return userMapper.selectByOpenId(openId);
    }

}

這里我們使用了Spring框架的注解功能注入了UserMapper,并實(shí)現(xiàn)了selectByOpenId方法。

6. Controller設(shè)計(jì)

在設(shè)計(jì)Controller時(shí),我們需要使用@RestController注解將Java類(lèi)標(biāo)記為控制器,使用@RequestMapping注解處理HTTP請(qǐng)求,并注入Service實(shí)現(xiàn)相應(yīng)的業(yè)務(wù)邏輯。以下是一個(gè)簡(jiǎn)單的UserController示例:

@RestController
@RequestMapping("/user")
@Api(tags = "用戶(hù)管理")
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 用戶(hù)登錄接口
     */
    @PostMapping("/login")
    @ApiOperation(value = "用戶(hù)登錄", notes = "首次登錄需使用微信注冊(cè)")
    public Result<UserEntity> login(@RequestParam("openId") String openId, @RequestParam("credential") String credential) {
        UserEntity user = userService.selectByOpenId(openId);
        if (user == null) {
            throw new BusinessException("該用戶(hù)不存在");
        }
        if (!user.getCredential().equals(credential)) {
            throw new BusinessException("登錄憑證不正確");
        }
        return Result.success(user);
    }

    /**
     * 用戶(hù)注冊(cè)接口
     */
    @PostMapping("/register")
    @ApiOperation(value = "用戶(hù)注冊(cè)", notes = "注冊(cè)成功后可使用微信直接登錄")
    public Result<UserEntity> register(@RequestBody UserEntity user) {
        boolean result = userService.save(user);
        if (!result) {
            throw new BusinessException("注冊(cè)失敗,請(qǐng)檢查輸入?yún)?shù)");
        }
        return Result.success(user);
    }

}

我們使用了@RestController注解標(biāo)記這個(gè)Java類(lèi)為Spring MVC控制器,并將@RequestMapping的value映射到 “/user”。在login和register方法中,我們分別處理了用戶(hù)登錄和注冊(cè)請(qǐng)求,并調(diào)用Service實(shí)現(xiàn)相應(yīng)的業(yè)務(wù)邏輯。

三、前端頁(yè)面設(shè)計(jì)

在本項(xiàng)目中,我們使用Vue框架和Vant組件庫(kù)來(lái)實(shí)現(xiàn)前端頁(yè)面設(shè)計(jì)。主要包括:

  • 用戶(hù)登錄頁(yè)面
  • 用戶(hù)注冊(cè)頁(yè)面

1. 用戶(hù)登錄頁(yè)面

我們?cè)谟脩?hù)登錄頁(yè)面上使用了Vant的輸入框組件,并添加了驗(yàn)證邏輯。以下是簡(jiǎn)單的登錄頁(yè)面示例:

<template>
  <div class="login-page">
    <van-field v-model="openId" label="微信OpenID" placeholder="請(qǐng)輸入微信OpenID" />

    <van-field type="password" v-model="credential" label="登錄憑證" placeholder="請(qǐng)輸入登錄憑證" />

    <van-button type="primary" :disabled="!openId || !credential" class="login-button" @click="login">登錄</van-button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      openId: '',
      credential: ''
    };
  },
  methods: {
    login() {
      if (!this.openId || !this.credential) {
        this.$toast('請(qǐng)?zhí)顚?xiě)完整登錄信息');
        return;
      }
      // TODO: 調(diào)用后端接口處理登錄邏輯
    }
  }
};
</script>

在登錄按鈕的點(diǎn)擊事件中,我們將用戶(hù)輸入的openId和credential傳遞到后端接口中進(jìn)行驗(yàn)證。登錄成功后可以跳轉(zhuǎn)到其他頁(yè)面,或者直接顯示用戶(hù)信息。

2. 用戶(hù)注冊(cè)頁(yè)面

在用戶(hù)注冊(cè)頁(yè)面上,我們使用了Vant的表單組件和按鈕組件,并添加了表單驗(yàn)證。以下是簡(jiǎn)單的注冊(cè)頁(yè)面示例:

<template>
  <div class="register-page">
    <van-form
      ref="form"
      label-position="top"
      :rules="rules"
    >
      <van-field v-model="openId" label="微信OpenID" placeholder="請(qǐng)輸入微信OpenID" />

      <van-field type="password" v-model="credential" label="登錄憑證" placeholder="請(qǐng)輸入登錄憑證" />

      <van-button type="primary" :disabled="!isFormValid" class="register-button" @click="register">注冊(cè)</van-button>
    </van-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      openId: '',
      credential: '',
      rules: {
        openId: [
          { required: true, message: '請(qǐng)輸入微信OpenID', trigger: 'blur' }
        ],
        credential: [
          { required: true, message: '請(qǐng)輸入登錄憑證', trigger: 'blur' },
          { min: 6, max: 20, message: '登錄憑證長(zhǎng)度為6到20個(gè)字符', trigger: 'blur' }
        ]
      }
    };
  },
  computed: {
    isFormValid() {
      return this.$refs.form.validate();
    }
  },
  methods: {
    register() {
      if (!this.isFormValid) {
        this.$toast('請(qǐng)?zhí)顚?xiě)完整注冊(cè)信息');
        return;
      }
      // TODO: 調(diào)用后端接口進(jìn)行注冊(cè)操作
    }
  }
};
</script>

在注冊(cè)按鈕的點(diǎn)擊事件中,我們將表單數(shù)據(jù)傳遞到后端接口中進(jìn)行處理。如果注冊(cè)成功,可以跳轉(zhuǎn)到登錄頁(yè)面。

四、項(xiàng)目總結(jié)

本文中,我們使用SpringBoot和Mybatis-Plus快速搭建了一個(gè)微信注冊(cè)、登錄功能,并通過(guò)Vue實(shí)現(xiàn)了簡(jiǎn)潔、優(yōu)美的前端頁(yè)面。這個(gè)項(xiàng)目可以作為入門(mén)級(jí)別的示例,幫助我們快速理解如何使用這些工具和框架來(lái)實(shí)現(xiàn)功能。

到此這篇關(guān)于SpringBoot整合Mybatis-Plus實(shí)現(xiàn)微信注冊(cè)登錄的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot MybatisPlus微信注冊(cè)登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Kotlin常用函數(shù)let,with,run,apply用法與區(qū)別案例詳解

    Kotlin常用函數(shù)let,with,run,apply用法與區(qū)別案例詳解

    這篇文章主要介紹了Kotlin常用函數(shù)let,with,run,apply用法與區(qū)別案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • SpringBoot使用命令行參數(shù)方式

    SpringBoot使用命令行參數(shù)方式

    Spring?Boot允許通過(guò)命令行參數(shù)靈活配置和部署項(xiàng)目,在main方法中傳入?yún)?shù)并通過(guò)SpringApplication.run()加載配置,如果需要關(guān)閉命令行配置,可以設(shè)置addCommandLineProperties為false
    2025-12-12
  • SpringBoot項(xiàng)目中使用Jsp的正確方法

    SpringBoot項(xiàng)目中使用Jsp的正確方法

    SpringBoot默認(rèn)是不支持JSP開(kāi)發(fā)的,若是需要使用JSP的話便需要自己配置外部的tomcat,下面這篇文章主要給大家介紹了關(guān)于SpringBoot項(xiàng)目中使用Jsp的正確方法,需要的朋友可以參考下
    2023-05-05
  • 學(xué)習(xí)不同 Java.net 語(yǔ)言中類(lèi)似的函數(shù)結(jié)構(gòu)

    學(xué)習(xí)不同 Java.net 語(yǔ)言中類(lèi)似的函數(shù)結(jié)構(gòu)

    這篇文章主要介紹了學(xué)習(xí)不同 Java.net 語(yǔ)言中類(lèi)似的函數(shù)結(jié)構(gòu),函數(shù)式編程語(yǔ)言包含多個(gè)系列的常見(jiàn)函數(shù)。但開(kāi)發(fā)人員有時(shí)很難在語(yǔ)言之間進(jìn)行切換,因?yàn)槭煜さ暮瘮?shù)具有不熟悉的名稱(chēng)。函數(shù)式語(yǔ)言?xún)A向于基于函數(shù)范例來(lái)命名這些常見(jiàn)函數(shù)。,需要的朋友可以參考下
    2019-06-06
  • 基于Properties實(shí)現(xiàn)配置數(shù)據(jù)庫(kù)驅(qū)動(dòng)

    基于Properties實(shí)現(xiàn)配置數(shù)據(jù)庫(kù)驅(qū)動(dòng)

    這篇文章主要介紹了基于Properties實(shí)現(xiàn)配置數(shù)據(jù)庫(kù)驅(qū)動(dòng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • java中的快捷鍵小結(jié)

    java中的快捷鍵小結(jié)

    以下是myeclipse中的所有快捷鍵列表
    2013-03-03
  • 在Java中動(dòng)態(tài)執(zhí)行字符串代碼的方法小結(jié)

    在Java中動(dòng)態(tài)執(zhí)行字符串代碼的方法小結(jié)

    在Java編程中,靜態(tài)編譯的特性通常不允許我們直接執(zhí)行運(yùn)行時(shí)生成的代碼,然而,有時(shí)我們需要?jiǎng)討B(tài)地生成并執(zhí)行代碼片段,本文將詳細(xì)介紹如何在Java中運(yùn)行一段字符串代碼,并提供詳細(xì)的代碼案例和運(yùn)行結(jié)果,需要的朋友可以參考下
    2024-08-08
  • 淺談Java之終止繼承:Final類(lèi)和Fianl方法

    淺談Java之終止繼承:Final類(lèi)和Fianl方法

    這篇文章主要介紹了Java之終止繼承:Final類(lèi)和Fianl方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • java7改善后的異常處理

    java7改善后的異常處理

    在本篇文章里小編給大家整理的是關(guān)于java7改善后的異常處理知識(shí)點(diǎn)總結(jié),有需要的朋友們參考下。
    2019-11-11
  • Java新特性之Optional類(lèi)超詳細(xì)介紹

    Java新特性之Optional類(lèi)超詳細(xì)介紹

    這篇文章主要給大家介紹了關(guān)于Java新特性之Optional類(lèi)超詳細(xì)介紹的相關(guān)資料,Java8中的Optional類(lèi)是一個(gè)容器對(duì)象,可以包含null或非null值,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07

最新評(píng)論

兴海县| 桑日县| 太康县| 永寿县| 萍乡市| 镇赉县| 明星| 呼伦贝尔市| 包头市| 安岳县| 武胜县| 洪江市| 宁安市| 宁河县| 清原| 广南县| 成都市| 红桥区| 赣州市| 肃南| 蓬莱市| 个旧市| 佛学| 廊坊市| 新乡市| 内丘县| 满洲里市| 凯里市| 皮山县| 嵊州市| 淮北市| 平和县| 岑溪市| 长治县| 盘山县| 滨海县| 东辽县| 旬邑县| 花垣县| 呈贡县| 新丰县|