<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Springboot 整合微信小程序?qū)崿F(xiàn)登錄與增刪改查

          共 8744字,需瀏覽 18分鐘

           ·

          2020-11-30 22:35

          作者:安詳?shù)目喽〔?/span>

          鏈接:https://www.cnblogs.com/ckfeng/p/12812214.html

          項(xiàng)目描述:在微信小程序中通過與Springboot操作數(shù)據(jù)庫實(shí)現(xiàn)簡單的增刪改查,其中我是用springboot整合mybatis-plus 和mysql使用的

          1. 開發(fā)前準(zhǔn)備

          1.1 前置知識

          • java基礎(chǔ)
          • SpringBoot簡單基礎(chǔ)知識

          1.2 環(huán)境參數(shù)

          • 開發(fā)工具:IDEA
          • 基礎(chǔ)環(huán)境:Maven+JDK8
          • 主要技術(shù):SpringBoot、lombok、mybatis-plus、mysql 、微信小程序
          • SpringBoot版本:2.2.6

          2.開發(fā)者服務(wù)器

          項(xiàng)目結(jié)構(gòu):

          2.1 初始配置

          (1)pom.xml配置

          ?<dependencies>
          ????????<dependency>
          ????????????<groupId>org.springframework.bootgroupId>
          ????????????<artifactId>spring-boot-starter-webartifactId>
          ????????dependency>

          ????????<dependency>
          ????????????<groupId>org.mybatis.spring.bootgroupId>
          ????????????<artifactId>mybatis-spring-boot-starterartifactId>
          ????????????<version>2.1.1version>
          ????????dependency>

          ????????
          ????????<dependency>
          ????????????<groupId>org.springframework.bootgroupId>
          ????????????<artifactId>spring-boot-starter-thymeleafartifactId>
          ????????dependency>

          ????????
          ????????<dependency>
          ????????????<groupId>com.alibabagroupId>
          ????????????<artifactId>druidartifactId>
          ????????????<version>1.1.14version>
          ????????dependency>

          ????????
          ????????<dependency>
          ????????????<groupId>mysqlgroupId>
          ????????????<artifactId>mysql-connector-javaartifactId>
          ????????????<version>5.1.42version>
          ????????????<scope>runtimescope>
          ????????dependency>

          ????????
          ????????<dependency>
          ????????????<groupId>com.baomidougroupId>
          ????????????<artifactId>mybatis-plus-boot-starterartifactId>
          ????????????<version>3.1.0version>
          ????????dependency>

          ????????
          ????????<dependency>
          ????????????<groupId>org.projectlombokgroupId>
          ????????????<artifactId>lombokartifactId>
          ????????????<optional>trueoptional>
          ????????dependency>

          ????????
          ????????<dependency>
          ????????????<groupId>com.github.pagehelpergroupId>
          ????????????<artifactId>pagehelper-spring-boot-starterartifactId>
          ????????????<version>1.2.5version>
          ????????dependency>

          ????????
          ????????<dependency>
          ????????????<groupId>junitgroupId>
          ????????????<artifactId>junitartifactId>
          ????????????<scope>testscope>
          ????????dependency>

          ????????<dependency>
          ????????????<groupId>org.springframework.bootgroupId>
          ????????????<artifactId>spring-boot-starter-testartifactId>
          ????????????<scope>testscope>
          ????????????<exclusions>
          ????????????????<exclusion>
          ????????????????????<groupId>org.junit.vintagegroupId>
          ????????????????????<artifactId>junit-vintage-engineartifactId>
          ????????????????exclusion>
          ????????????exclusions>
          ????????dependency>
          ????dependencies>

          ????<build>
          ????????<plugins>
          ????????????<plugin>
          ????????????????<groupId>org.springframework.bootgroupId>
          ????????????????<artifactId>spring-boot-maven-pluginartifactId>
          ????????????plugin>
          ????????plugins>
          ????build>

          project>

          (2)application.yml

          #?Spring?Boot?的數(shù)據(jù)源配置
          spring:
          ??datasource:
          ????name:?wx
          ????url:?jdbc:mysql://localhost:3306/wx_mini_program?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
          ?username:?root
          ????password:?root
          ????#?使用druid數(shù)據(jù)源
          ????type:?com.alibaba.druid.pool.DruidDataSource
          ????driver-class-name:?com.mysql.jdbc.Driver
          ????filters:?stat
          ????maxActive:?20?initialSize:?1?maxWait:?60000?minIdle:?1?timeBetweenEvictionRunsMillis:?60000?minEvictableIdleTimeMillis:?300000?validationQuery:?select?'x'?testWhileIdle:?true?testOnBorrow:?false?testOnReturn:?false?poolPreparedStatements:?true?maxPoolPreparedStatementPerConnectionSize:?20?maxOpenPreparedStatements:?20?#?mybatis-plus相關(guān)配置
          mybatis-plus:
          ??#?xml掃描,多個(gè)目錄用逗號或者分號分隔(告訴?Mapper?所對應(yīng)的?XML?文件位置)
          ??mapper-locations:?classpath:mapper/*.xml
          ??#?以下配置均有默認(rèn)值,可以不設(shè)置
          ??global-config:
          ????db-config:
          ??????#主鍵類型?AUTO:"數(shù)據(jù)庫ID自增"?INPUT:"用戶輸入ID",ID_WORKER:"全局唯一ID?(數(shù)字類型唯一ID)",?UUID:"全局唯一ID?UUID";
          ??????id-type:?auto
          ??????#字段策略?IGNORED:"忽略判斷"??NOT_NULL:"非?NULL?判斷")??NOT_EMPTY:"非空判斷"
          ??????field-strategy:?NOT_EMPTY
          ??????#數(shù)據(jù)庫類型
          ??????db-type:?MYSQL

          ??#?指定實(shí)體類的包
          ??type-aliases-package:?com.ckf.login_wx.entity
          ??configuration:
          ????#?是否開啟自動駝峰命名規(guī)則映射:從數(shù)據(jù)庫列名到Java屬性駝峰命名的類似映射
          ????map-underscore-to-camel-case:?true
          ????#?如果查詢結(jié)果中包含空值的列,則?MyBatis?在映射的時(shí)候,不會映射這個(gè)字段
          ????call-setters-on-nulls:?true
          ????#?這個(gè)配置會將執(zhí)行的sql打印出來,在開發(fā)或測試的時(shí)候可以用
          ????log-impl:?org.apache.ibatis.logging.stdout.StdOutImpl

          #?PageHelper分頁插件
          pagehelper:
          ??helperDialect:?mysql
          ??reasonable:?true
          ??supportMethodsArguments:?true
          ??params:?count=countSql

          2.2 小程序用戶表


          CREATE?table?users(
          ?id?int?not?null?PRIMARY?key?auto_increment,
          ?name?varchar(255)?not?null,
          ?age?int?not?null?);

          insert?into?users?value(null,'陳克鋒',18);
          insert?into?users?value(null,'陳克帥',11);
          insert?into?users?value(null,'陳克兵',14);?select?*?from?users;

          2.3 pojo

          2.4 mapper

          2.5 service

          2.5 serviceImpl

          配置SpringBoot掃描mapper

          2.6 controller

          LoginController


          package?com.ckf.login_wx.controller;

          import?org.springframework.web.bind.annotation.PostMapping;
          import?org.springframework.web.bind.annotation.RestController;

          import?java.util.HashMap;
          import?java.util.Map;?/**
          ?*?@author?安詳?shù)目喽〔?br>?*?@date?2020/4/30?11:46?*/
          ?@RestController?public?class?LoginController?{?/**
          ?????*?登錄
          ?????*?@param?phone
          ?????*?@param?password
          ?????*?@return?*/
          ?@PostMapping("/doLogin")?public?Map?doLogin(String?phone,?String?password){
          ????????Map?map?=?new?HashMap();?if?((phone.equals("10086")&&?password.equals("123456"))){
          ????????????map.put("code",200);
          ????????????map.put("result","登錄成功");
          ????????????System.out.println("登錄成功");
          ????????}else?{
          ????????????map.put("result","no");
          ????????}?return?map;
          ????}

          }

          UserController


          package?com.ckf.login_wx.controller;

          import?com.ckf.login_wx.entity.User;
          import?com.ckf.login_wx.servic.UserService;
          import?org.springframework.beans.factory.annotation.Autowired;
          import?org.springframework.web.bind.annotation.*;?/**
          ?*?@author?安詳?shù)目喽〔?br>?*?@date?2020/4/30?13:39?*/
          ?@RestController
          @RequestMapping("/test")?public?class?UserController?{

          ????@Autowired?private?UserService?userService;?/**
          ?????*?查詢?nèi)?br>?????*?@return?*/
          ?@GetMapping("/list")?public?Object?list(){
          ????????System.out.println("查詢成功");?return?userService.list();
          ????}?/**
          ?????*?根據(jù)id刪除
          ?????*?@param?id
          ?????*?@return?*/
          ?@GetMapping("/delete")?public?boolean?delete(Integer?id){
          ????????System.out.println("刪除成功");?return?userService.removeById(id);
          ????}?/**
          ?????*??根據(jù)id查詢
          ??????*?@param?id
          ?????*?@return?*/
          ?@GetMapping("/byid")?public?Object?byid(Integer?id){
          ????????System.out.println("查詢成功");?return?userService.getById(id);
          ????}?/**
          ?????*??修改
          ?????*?@param?user
          ?????*?@return?*/
          ?@PostMapping("/update")?public?boolean?update(@RequestBody?User?user){
          ????????System.out.println("修改成功");?return?userService.updateById(user);
          ????}?/**
          ?????*?添加
          ?????*?@param?user
          ?????*?@return?*/
          ?@PostMapping("/add")?public?boolean?add(@RequestBody?User?user){
          ????????System.out.println("添加成功");?return?userService.save(user);
          ????}

          }

          3. 微信小程序

          項(xiàng)目結(jié)構(gòu):

          3.1 初始配置

          3.2 bing.wxml



          <view>

          ??<form?bindsubmit='doLogin'>
          ????????????
          ????????????<view?class="inputView">

          ????????????????<label?class="loginLabel">賬號label>
          ????????????????<input?name="phone"?value='10086'?class="inputText"?placeholder="請輸入賬號"?/>
          ????????????view>
          ????????????<view?class="line">view>

          ????????????
          ????????????<view?class="inputView">

          ????????????????<label?class="loginLabel">密碼label>
          ????????????????<input?name="password"?value='123456'?class="inputText"?password="true"?placeholder="請輸入密碼"?/>
          ????????????view>
          ????????????<view?class="line">view>
          ????????????
          ????????????<view?class='backColor'>
          ????????????????<button?class="loginBtn"?formType="submit"??open-type='getUserInfo'?>登錄button>
          ????????????view>

          ????????????
          ????????form>

          view>

          3.3 bing.js

          3.3 list.wxml



          ??<button?class="add"?type='primary'?bindtap='addArea'>添加button>
          <view?class="container">
          ??<view?class='widget'>
          ????<text?class='column'>編號text>
          ????<text?class='column'>姓名text>
          ????<text?class='column'>年齡text>
          ????<text?class='link-column'>操作text>
          ??view>
          ??<scroll-view?scroll-y="true">
          ????<view>
          ??????<block?wx:for='{{list}}'>
          ??????<view?class='widget'>?
          ????????<text?class='column'>{{item.id}}text>
          ????????<text?class='column'>{{item.name}}text>
          ?????????<text?class='column'>{{item.age}}text>
          ????????<view?class='link-column'>
          ??????????<navigator?class='link'?url='../operation/operation?id={{item.id}}'>編輯navigator>?|
          ??????????<text?class='link'?bindtap='deleteArea'?data-areaid='{{item.id}}'?data-areaname='{{item.name}}'?data-index='{{index}}'>刪除text>??
          ????????view>
          ????????view>??????
          ??????block>
          ????view>
          ??scroll-view>

          view>

          3.4 list.js


          //?pages/list/list.js
          Page({?/**
          ???*?頁面的初始數(shù)據(jù)?*/
          ?data:?{
          ????list:[]
          ??},?/**
          ???*?生命周期函數(shù)--監(jiān)聽頁面加載?*/
          ?onLoad:?function?(options)?{

          ??},?/**
          ???*?生命周期函數(shù)--監(jiān)聽頁面初次渲染完成?*/
          ?onReady:?function?()?{

          ??},?/**
          ???*?生命周期函數(shù)--監(jiān)聽頁面顯示?*/
          ?onShow:?function?()?{?var?that=this;
          ????wx.request({
          ??????url:?'http://localhost:8080/test/list',
          ??????method:'GET',
          ??????data:{},
          ??????success:function(res){?var?list=res.data;?if(list==null){?var?toastText='獲取數(shù)據(jù)失敗';
          ??????????wx.showToast({
          ????????????title:?toastText,
          ????????????icon:'',
          ????????????duration:2000?//彈出時(shí)間
          ?})
          ????????}else{
          ??????????that.setData({
          ????????????list:list
          ??????????})
          ????????}
          ??????}
          ????})
          ??},?/**
          ???*?生命周期函數(shù)--監(jiān)聽頁面隱藏?*/
          ?onHide:?function?()?{

          ??},?/**
          ???*?生命周期函數(shù)--監(jiān)聽頁面卸載?*/
          ?onUnload:?function?()?{

          ??},?/**
          ???*?頁面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動作?*/
          ?onPullDownRefresh:?function?()?{

          ??},?/**
          ???*?頁面上拉觸底事件的處理函數(shù)?*/
          ?onReachBottom:?function?()?{

          ??},?/**
          ???*?用戶點(diǎn)擊右上角分享?*/
          ?onShareAppMessage:?function?()?{

          ??},
          ??addArea:function(){
          ????wx.navigateTo({
          ??????url:'../operation/operation'?})
          ??},
          ??deleteArea:?function?(e)?{?var?that=this;
          ????wx.showModal({
          ??????title:?'提示',
          ??????content:?'確定要刪除['?+?e.target.dataset.areaname?+']嗎?',
          ??????success:function(sm){?if(sm.confirm){
          ??????????wx.request({
          ????????????url:?'http://localhost:8080/test/delete',
          ????????????data:?{?id:?e.target.dataset.areaid},
          ????????????method:'GET',
          ????????????success:function(res){?var?result=res.statusCode;?var?toastText="刪除成功";?if(result!=200){
          ????????????????toastText?=?"刪除失敗";
          ??????????????}else{
          ????????????????that.data.list.splice(e.target.dataset.index,1);
          ????????????????that.setData({
          ??????????????????list:that.data.list
          ????????????????});
          ??????????????}
          ??????????????wx.showToast({
          ????????????????title:?toastText,
          ????????????????icon:'',
          ????????????????duration:2000?});
          ????????????}
          ??????????})
          ????????}
          ??????}
          ????})

          ??}
          })

          3.5 app.json


          {?"pages":?[?"pages/bind/bind",?"pages/list/list",?"pages/logs/logs",?"pages/operation/operation",?"pages/index/index"?],?"window":?{?"backgroundColor":?"#F6F6F6",?"backgroundTextStyle":?"light",?"navigationBarBackgroundColor":?"#29d",?"navigationBarTitleText":?"login",?"navigationBarTextStyle":?"black"?},?"sitemapLocation":?"sitemap.json",?"style":?"v2"?}

          4. 測試

          啟動開發(fā)者服務(wù)器,啟動SpringBoot的main方法。

          打開微信小程序開發(fā)者工具

          登錄頁面

          首頁

          添加頁面

          修改頁面

          刪除

          到處基本的增刪改查操作已經(jīng)完成了

          如有需要前往 Gitee(碼云)下載

          前臺:https://gitee.com/ckfeng/applet_of_wechat.git

          后臺:https://gitee.com/ckfeng/wx_login.git

          -END-

          更多精彩:
          Java實(shí)戰(zhàn)項(xiàng)目視頻,給需要的讀者,收藏!
          Centos7搭建k8s環(huán)境教程,一次性成功!
          看看人家那后端API接口寫得,那叫一個(gè)優(yōu)雅!
          一款開源的視頻彈幕功能項(xiàng)目,不用重復(fù)造輪子了!
          一款開源 SpringBoot 后端管理系統(tǒng),代碼開源了!
          開源 SpringBoot 商城系統(tǒng),真香!
          關(guān)注公眾號,查看更多優(yōu)質(zhì)文章

          最近,整理一份Java資料Java從0到1,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。
          獲取方式:關(guān)注公眾號并回復(fù)?Java?領(lǐng)取,更多Java內(nèi)容陸續(xù)奉上。
          明天見(??ω??)??

          瀏覽 60
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产9在线观看 | 免费在线观看亚洲天堂 | aV无码av天天aV天天爽第一 | 免费看毛片电影 | 青青青在线 |