网站开发php技术,电子商务专业网页设计,建筑模板的价格一览表,如何注册公司抖音号文章目录 1.环境配置1.创建会员中心模块2.检查父子模块的pom.xml1.父模块注意#xff1a;如果父模块中的依赖显示not found#xff0c;原因是子模块并没有引用#xff0c;不用在意 2.子模块 3.pom.xml 引入相关依赖#xff08;别忘记刷新maven#xff09;4.application.ym… 文章目录 1.环境配置1.创建会员中心模块2.检查父子模块的pom.xml1.父模块注意如果父模块中的依赖显示not found原因是子模块并没有引用不用在意 2.子模块 3.pom.xml 引入相关依赖别忘记刷新maven4.application.yml 进行基本配置5.com/sun/springcloud/MemberApplication.java 编写主程序测试6.出现两个问题1.端口冲突所以这里换一个端口为10001将子模块名也一并修改2.数据库没创建 7.使用云数据库1.数据库表设计2.修改application.yml 的portname以及数据库配置3.执行主程序测试 2.代码编写1.com/sun/springcloud/entity/Member.java 创建实体类2.com/sun/springcloud/util/Result.java 封装响应结果的工具类3.编写dao层1.com/sun/springcloud/dao/MemberDao.java 编写Mapper接口并注入容器2.mapper/MemberMapper.xml 编写Mapper实现类3.com/sun/springcloud/MemberApplicationTest.java 测试dao层 4.编写service层1.com/sun/springcloud/service/MemberService.java 编写service接口2.com/sun/springcloud/service/Impl/MemberServiceImpl.java 编写service实现类并注入容器3.测试service层 5.编写controller层1.com/sun/springcloud/controller/MemberController.java 编写controller2.postman测试 1.环境配置
1.创建会员中心模块 2.检查父子模块的pom.xml
1.父模块
注意如果父模块中的依赖显示not found原因是子模块并没有引用不用在意 2.子模块 3.pom.xml 引入相关依赖别忘记刷新maven dependencies!-- springboot web starter --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId!-- 如果在子工程/模块指定了 version则以指定为准 --/dependency!-- 1. starter-actuator 是 springboot 程序的监控系统可以实现健康检查info 信息等2. 访问 http://localhost:10000/actuator 可以看到相关链接, 还可以做相关设置. --!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependency!-- mybatis --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactId/dependency!-- druid --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactId!-- 这里我们重新指定一下 version 因为父项目中没有对这个依赖进行版本仲裁--version1.1.13/version/dependency!-- mysql --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependency!-- jdbc --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependency!-- lombok --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!-- test --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies4.application.yml 进行基本配置
server:port: 10000 # 配置服务端口
spring:application:name: member-service-provider-10000 # 配置服务的名称名字任意这里与项目名保持一致datasource:type: com.alibaba.druid.pool.DruidDataSource# 别忘记创建数据库之后修改数据库名称url: jdbc:mysql://localhost:3306/xxx?useSSLfalseuseUnicodetruecharacterEncodingUTF-8username: rootpassword: root
mybatis:mapper-locations: classpath:mapper/*.xml # 扫描所有Mapper.xmltype-aliases-package: com.sun.springcloud.entity # 扫描所有实体类可以直接使用类名来标识
5.com/sun/springcloud/MemberApplication.java 编写主程序测试
package com.sun.springcloud;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Description:** Author sun* Create 2024/3/22 12:49* Version 1.0*/
SpringBootApplication
public class MemberApplication {public static void main(String[] args) {SpringApplication.run(MemberApplication.class, args);}
}
6.出现两个问题
1.端口冲突所以这里换一个端口为10001将子模块名也一并修改 2.数据库没创建 7.使用云数据库
1.数据库表设计
CREATE DATABASE e_commerce_center_db;
USE e_commerce_center_db;
CREATE TABLE member
(id BIGINT NOT NULL AUTO_INCREMENT COMMENT id,NAME VARCHAR(64) COMMENT 用户名,pwd CHAR(32) COMMENT 密码,mobile VARCHAR(20) COMMENT 手机号码,email VARCHAR(64) COMMENT 邮箱,gender TINYINT COMMENT 性别, PRIMARY KEY (id)
);
INSERT INTO member VALUES(NULL, smith, MD5(123), 123456789000, smithsohu.com, 1);
SELECT * from member;2.修改application.yml 的portname以及数据库配置
server:port: 10001 # 配置服务端口
spring:application:name: member-service-provider-10001 # 配置服务的名称名字任意这里与项目名保持一致datasource:type: com.alibaba.druid.pool.DruidDataSource# 别忘记创建数据库之后修改数据库名称url: 你连接数据库的urlusername: sdfsdfsdpassword: 88888
mybatis:mapper-locations: classpath:mapper/*.xml # 扫描所有Mapper.xmltype-aliases-package: com.sun.springcloud.entity # 扫描所有实体类可以直接使用类名来标识
3.执行主程序测试 2.代码编写
1.com/sun/springcloud/entity/Member.java 创建实体类
package com.sun.springcloud.entity;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;/*** Description:** Author sun* Create 2024/3/23 11:10* Version 1.0*/AllArgsConstructor
NoArgsConstructor
Data
//Serializable 加上后面可能使用
public class Member implements Serializable {private Long id;private String name;private String pwd;private String mobile;private String email;private Integer gender;
}
2.com/sun/springcloud/util/Result.java 封装响应结果的工具类
package com.sun.springcloud.util;/*** Description: 用于返回结果 利于 json 格式** Author sun* Create 2024/3/23 11:12* Version 1.0*/public class ResultT {private String code;private String msg;private T data;public String getCode() {return code;}public void setCode(String code) {this.code code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg msg;}public T getData() {return data;}public void setData(T data) {this.data data;}public Result() {}public Result(T data) {this.data data;}public static Result success() {Result result new Result();result.setCode(200);result.setMsg(success);return result;}public static T ResultT success(T data) {ResultT result new Result(data);result.setCode(200);result.setMsg(success);return result;}public static T ResultT success(String msg, T data) {ResultT result new Result(data);result.setCode(200);result.setMsg(msg);return result;}public static Result error(String code, String msg) {Result result new Result();result.setCode(code);result.setMsg(msg);return result;}public static T ResultT error(String code, String msg, T data) {ResultT result new Result(data);result.setCode(code);result.setMsg(msg);return result;}
}3.编写dao层
1.com/sun/springcloud/dao/MemberDao.java 编写Mapper接口并注入容器
package com.sun.springcloud.dao;import com.sun.springcloud.entity.Member;
import org.apache.ibatis.annotations.Mapper;/*** Description: 对member表进行操作** Author sun* Create 2024/3/23 21:06* Version 1.0*/
Mapper // 注入容器
public interface MemberDao {/*** 根据id进行查询* param id* return 查询成功返回Member对象查询失败返回null*/public Member queryMemberById(Long id);/*** 保存一条记录* param member* return 返回受影响的行数*/public int save(Member member);
}
2.mapper/MemberMapper.xml 编写Mapper实现类
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttps://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespacecom.sun.springcloud.dao.MemberDaoresultMap idBaseResultMap typeMemberid columnid propertyid jdbcTypeBIGINT/idid columnname propertyname jdbcTypeVARCHAR/idid columnpwd propertypwd jdbcTypeVARCHAR/idid columnmobile propertymobile jdbcTypeVARCHAR/idid columnemail propertyemail jdbcTypeVARCHAR/idid columngender propertygender jdbcTypeTINYINT/id/resultMapselect idqueryMemberById parameterTypeLong resultMapBaseResultMapselect * from member where id #{id}/select!-- useGeneratedKeystrue keyPropertyid 表示插入之后将自增的主键id的值返回到Member对象中 --insert idsave parameterTypeMember useGeneratedKeystrue keyPropertyidINSERT INTO member VALUES(NULL, #{name}, MD5(#{pwd}), #{mobile}, #{email}, #{gender});/insert
/mapper3.com/sun/springcloud/MemberApplicationTest.java 测试dao层
package com.sun.springcloud;import com.sun.springcloud.dao.MemberDao;
import com.sun.springcloud.entity.Member;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import javax.annotation.Resource;/*** Description:** Author sun* Create 2024/3/23 21:46* Version 1.0*/
SpringBootTest
Slf4j
public class MemberApplicationTest {Resourceprivate MemberDao memberDao;Testpublic void queryMemberById() {Member member memberDao.queryMemberById(1L);log.info(member{}, member);}Testpublic void save() {Member member new Member();member.setName(sun);member.setPwd(12121);member.setMobile(2342343);member.setEmail(123qq.com);member.setGender(0);int save memberDao.save(member);Assert.assertEquals(1, save);}
} 4.编写service层
1.com/sun/springcloud/service/MemberService.java 编写service接口
package com.sun.springcloud.service;import com.sun.springcloud.entity.Member;/*** Description: 对member表进行操作的service** Author sun* Create 2024/3/23 22:02* Version 1.0*/
public interface MemberService {/*** 根据id获取一条记录** param id* return 成功返回member对象失败返回null*/public Member queryMemberById(Long id);/*** 保存一条记录** param member* return 成功返回1失败返回0*/public int save(Member member);}
2.com/sun/springcloud/service/Impl/MemberServiceImpl.java 编写service实现类并注入容器
package com.sun.springcloud.service.Impl;import com.sun.springcloud.dao.MemberDao;
import com.sun.springcloud.entity.Member;
import com.sun.springcloud.service.MemberService;
import org.springframework.stereotype.Service;import javax.annotation.Resource;/*** Description: member表的service实现类** Author sun* Create 2024/3/23 22:05* Version 1.0*/
Service // 注入容器
public class MemberServiceImpl implements MemberService {Resource // 依赖注入memberdaoprivate MemberDao memberDao;Overridepublic Member queryMemberById(Long id) {return memberDao.queryMemberById(id);}Overridepublic int save(Member member) {return memberDao.save(member);}
}
3.测试service层 Testpublic void queryMemberById2() {Member member memberService.queryMemberById(1L);log.info(member{}, member);}Testpublic void save2() {Member member new Member();member.setName(sun);member.setPwd(12121);member.setMobile(2342343);member.setEmail(123qq.com);member.setGender(0);int save memberService.save(member);Assert.assertEquals(1, save);}5.编写controller层
1.com/sun/springcloud/controller/MemberController.java 编写controller
package com.sun.springcloud.controller;import com.sun.springcloud.entity.Member;
import com.sun.springcloud.service.MemberService;
import com.sun.springcloud.util.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;/*** Description: member表的控制器** Author sun* Create 2024/3/23 22:24* Version 1.0*/
RestController
Slf4j
public class MemberController {Resource // 注入serviceprivate MemberService memberService;/*** 根据前端传进来的json数据插入一条记录** param member json类型的member对象数据* return 返回json类型的响应*/PostMapping(/member/save)public Result save(RequestBody Member member) {int save memberService.save(member);if (save 0) {return Result.success(添加会员成功, save);} else {return Result.error(401, 添加会员失败);}}/*** 根据id来获取某个会员的信息** param id 使用路径参数的形式传入参数* return 返回json格式的数据*/GetMapping(/member/get/{id}) // 这里使用的路径参数public Result getMemberById(PathVariable(id) Long id) {Member member memberService.queryMemberById(id);if (member ! null) {return Result.success(查询成功, member);} else {return Result.error(402, ID id 不存在);}}
}
2.postman测试