作者:浮云骑士LIN
cnblogs.com/ckfeng/p/12812214.html
项目描述:在微信小程序中通过与Springboot操作数据库实现简单的增删改查,其中我是用springboot整合mybatis-plus 和mysql使用的
1. 开发前准备
1.1 前置知识
java基础
SpringBoot简单基础知识
1.2 环境参数
开发工具:IDEA
基础环境:Maven+JDK8
主要技术:SpringBoot、lombok、mybatis-plus、mysql 、微信小程序
SpringBoot版本:2.2.6
2.开发者服务器
项目结构:
2.1 初始配置
(1)pom.xml配置
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.1
org.springframework.boot
spring-boot-starter-thymeleaf
com.alibaba
druid
1.1.14
mysql
mysql-connector-java
5.1.42
runtime
com.baomidou
mybatis-plus-boot-starter
3.1.0
org.projectlombok
lombok
true
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.5
junit
junit
test
org.springframework.boot
spring-boot-starter-test
test
org.junit.vintage
junit-vintage-engine
org.springframework.boot
spring-boot-maven-plugin
(2)application.yml
# Spring Boot 的数据源配置
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数据源
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相关配置
mybatis-plus:
# xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
mapper-locations: classpath:mapper/*.xml
# 以下配置均有默认值,可以不设置
global-config:
db-config:
#主键类型 AUTO:"数据库ID自增" INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
id-type: auto
#字段策略 IGNORED:"忽略判断" NOT_NULL:"非 NULL 判断") NOT_EMPTY:"非空判断"
field-strategy: NOT_EMPTY
#数据库类型
db-type: MYSQL
# 指定实体类的包
type-aliases-package: com.ckf.login_wx.entity
configuration:
# 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射
map-underscore-to-camel-case: true
# 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段
call-setters-on-nulls: true
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# PageHelper分页插件
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
2.2 小程序用户表
CREATEtableusers(
idintnotnullPRIMARYkeyauto_increment,
namevarchar(255)notnull,
ageintnotnull);
insertintousersvalue(null,'陈克锋',18);
insertintousersvalue(null,'陈克帅',11);
insertintousersvalue(null,'陈克兵',14);select*fromusers;
2.3 pojo
2.4 mapper
2.5 service
2.5 serviceImpl
配置SpringBoot扫描mapper
2.6 controller
LoginController
packagecom.ckf.login_wx.controller;
importorg.springframework.web.bind.annotation.PostMapping;
importorg.springframework.web.bind.annotation.RestController;
importjava.util.HashMap;
importjava.util.Map;/**
*@author安详的苦丁茶
*@date2020/4/30 11:46 */
@RestControllerpublicclassLoginController{/**
* 登录
*@paramphone
*@parampassword
*@return*/
@PostMapping("/doLogin")publicMapdoLogin(String phone, String password){
Map map =newHashMap();if((phone.equals("10086")&& password.equals("123456"))){
map.put("code",200);
map.put("result","登录成功");
System.out.println("登录成功");
}else{
map.put("result","no");
}returnmap;
}
}
UserController
packagecom.ckf.login_wx.controller;
importcom.ckf.login_wx.entity.User;
importcom.ckf.login_wx.servic.UserService;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.web.bind.annotation.*;/**
*@author安详的苦丁茶
*@date2020/4/30 13:39 */
@RestController
@RequestMapping("/test")publicclassUserController{
@AutowiredprivateUserService userService;/**
* 查询全部
*@return*/
@GetMapping("/list")publicObjectlist(){
System.out.println("查询成功");returnuserService.list();
}/**
* 根据id删除
*@paramid
*@return*/
@GetMapping("/delete")publicbooleandelete(Integer id){
System.out.println("删除成功");returnuserService.removeById(id);
}/**
* 根据id查询
*@paramid
*@return*/
@GetMapping("/byid")publicObjectbyid(Integer id){
System.out.println("查询成功");returnuserService.getById(id);
}/**
* 修改
*@paramuser
*@return*/
@PostMapping("/update")publicbooleanupdate(@RequestBody User user){
System.out.println("修改成功");returnuserService.updateById(user);
}/**
* 添加
*@paramuser
*@return*/
@PostMapping("/add")publicbooleanadd(@RequestBody User user){
System.out.println("添加成功");returnuserService.save(user);
}
}
3. 微信小程序
项目结构:
3.1 初始配置
3.2 bing.wxml
账号
密码
登录
微信登录
-->
3.3 bing.js
3.3 list.wxml
添加
编号
姓名
年龄
操作
{{item.id}}
{{item.name}}
{{item.age}}
编辑|
删除
3.4 list.js
// pages/list/list.js
Page({/**
* 页面的初始数据 */
data: {
list:[]
},/**
* 生命周期函数--监听页面加载 */
onLoad:function(options){
},/**
* 生命周期函数--监听页面初次渲染完成 */
onReady:function(){
},/**
* 生命周期函数--监听页面显示 */
onShow:function(){varthat=this;
wx.request({
url:'http://localhost:8080/test/list',
method:'GET',
data:{},
success:function(res){varlist=res.data;if(list==null){vartoastText='获取数据失败';
wx.showToast({
title: toastText,
icon:'',
duration:2000//弹出时间
})
}else{
that.setData({
list:list
})
}
}
})
},/**
* 生命周期函数--监听页面隐藏 */
onHide:function(){
},/**
* 生命周期函数--监听页面卸载 */
onUnload:function(){
},/**
* 页面相关事件处理函数--监听用户下拉动作 */
onPullDownRefresh:function(){
},/**
* 页面上拉触底事件的处理函数 */
onReachBottom:function(){
},/**
* 用户点击右上角分享 */
onShareAppMessage:function(){
},
addArea:function(){
wx.navigateTo({
url:'../operation/operation'})
},
deleteArea:function(e){varthat=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){varresult=res.statusCode;vartoastText="删除成功";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. 测试
启动开发者服务器,启动SpringBoot的main方法。
打开微信小程序开发者工具
登录页面
首页
添加页面
修改页面
删除
到处基本的增删改查操作已经完成了
如有需要前往 Gitee(码云)下载
前台:https://gitee.com/ckfeng/applet_of_wechat.git
后台:https://gitee.com/ckfeng/wx_login.git