搭建微服务模块pcloud-provider-user8001
New Module
、
修改pom文件
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!--mysql-connector-java-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--jdbc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
在父项目pom文件中可以看到
如果 没有resources目录,则需要手动创建
选中Resources点击右键,选择Mark Directory as,在选择Resources Root
编写application.yml配置文件
server:
port: 8001
spring:
application:
name: pcloud-user-service
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: org.gjt.mm.mysql.Driver # mysql驱动包
url: jdbc:mysql://localhost:3306/pcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: 123456
mybatis:
mapperLocations: classpath:mapper/*.xml
type-aliases-package: com.younger.springcloud.model # 所有Entity别名类所在包
编写主启动类:UserMain8001
package org.younger.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class UserMain8001 {
public static void main(String[] args) {
SpringApplication.run(UserMain8001.class,args);
}
}
建表SQL
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(200) DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
新建model 实体类
user
package com.younger.springcloud.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {
private Long id;
private String name;
}
新建放回结果的result 类
package com.younger.springcloud.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 封装返回结果
* @param <T>
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result<T> {
private Integer code;
private String message;
private T data;
public Result(Integer code,String message) {
this(code,message,null);
}
}
新建dao
新增UserDao类
package com.younger.springcloud.dao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.younger.springcloud.model.User;
/**
* user mapper实体
*/
@Mapper
public interface UserDao {
/**
* 保存用户信息
* @param user
* @return
*/
int save(User user);
/**
* 根据ID获取用户
* @param id
* @return
*/
User getUserById(@Param("id") Long id);
}
在 src\main\resources\mapper\目录下新建 UserMapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.younger.springcloud.dao.UserDao">
<resultMap id="BaseResultMap" type="com.younger.springcloud.model.User">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
</resultMap>
<insert id="save" parameterType="User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO User(name) VALUES(#{name});
</insert>
<select id="getUserById" parameterType="Long" resultMap="BaseResultMap" >
SELECT * FROM User WHERE id=#{id};
</select>
</mapper>
新建Service
新建接口 UserService
package com.younger.springcloud.service;
import com.younger.springcloud.model.User;
public interface UserService {
int save(User user);
User getUserById(Long id);
}
新建接口实现类 UserServiceImpl
package com.younger.springcloud.service.impl;
import com.younger.springcloud.dao.UserDao;
import com.younger.springcloud.model.User;
import com.younger.springcloud.service.UserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserDao userDao;
@Override
public int save(User user) {
return userDao.save(user);
}
@Override
public User getUserById(Long id) {
return userDao.getUserById(id);
}
}
新建controller
新建UserController 类
package com.younger.springcloud.controller;
import com.younger.springcloud.model.Result;
import com.younger.springcloud.model.User;
import com.younger.springcloud.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/user/save")
public Result save(@RequestBody User user) {
int result = userService.save(user);
if (result > 0 ) {
return new Result(200,"插入成功",result);
}else {
return new Result(400,"传入失败", result);
}
}
@GetMapping("/user/{id}")
public Result getUserById(@PathVariable("id") Long id) {
User user = userService.getUserById(id);
if (user != null) {
return new Result(200,"查询成功",user);
}else {
return new Result(404,"为找到数据",null);
}
}
}
测试项目是否搭建成功:
插入数据
查询数据: