使用Idea创建SpringBoot项目

File -> New ->Project



依次点 Spring Initializr、选择Project SDK为jdk1.8
Next 下一步


这里可以改Group和Artifact
Next 下一步

Developer Tools 开发工具,可以选择 Spring Boot DevTools(热部署)Lombok(插件,可以少些get/set)



Web 选择 Spring Web



SQL 选择 JDBC API、MyBatis Framework、MySQL Driver

Next 下一步

可以在此更改Project location



Finish然后OK


创建完后的项目结构:


创建用户表,语句如下:

CREATE TABLE `user`  (
  `id` int(0) NOT NULL AUTO_INCREMENT COMMENT '用户id',
  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名',
  `sex` int(0) NULL DEFAULT NULL COMMENT '性别 0男1女',
  `password` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `mobile` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `email` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `id`(`id`) USING BTREE,
  UNIQUE INDEX `uq_invite_mobile`(`mobile`) USING BTREE
) 

配置application.yml
还是比较习惯使用yml,把application重命名为yml,并新增application-dev.yml开发环境
application.yml如下配置:

# Tomcat
server:
  tomcat:
    uri-encoding: UTF-8
  port: 8082
  servlet:
    context-path: /api

spring:
  profiles:
    active: dev
  servlet:
    multipart:
      max-file-size: 100MB
      max-request-size: 100MB
      enabled: true

#mybatis
mybatis:
  mapper-locations: classpath*:/mapper/*.xml
  typeAliasesPackage: com.sandy.api.*.entity
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    call-setters-on-nulls: true
    jdbc-type-for-null: 'null'

application-dev.yml如下配置:

# datasource
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    driverClassName: com.mysql.jdbc.Driver
    username: root
    password: xxxx

创建实体类UserEntity

package com.sandy.api.entity;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;

/**
 * @author mrche
 */
@Getter
@Setter
@ToString
public class UserEntity implements Serializable {
    private static final long serialVersionUID =1L;
    /**
     * ID
     */
    private Integer id;
    /**
     * 用户名
     */
    private String name;
    /**
     * 性别
     */
    private Integer sex;
    /**
     * 密码
     */
    private String password;
    /**
     * 电话
     */
    private String mobile;
    /**
     * 邮件
     */
    private String email;
}

创建UserMapper.java

package com.sandy.api.mapper;

import com.sandy.api.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 用户相关
 * @author mrche
 */
@Mapper
public interface UserMapper {
    /**
     * 查询用户信息
     * @param name 用户名
     * @param pwd 密码
     * @return UserEntity
     */
    UserEntity doLogin(@Param(value = "name") String name,@Param(value = "pwd") String pwd);
}

创建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.sandy.api.mapper.UserMapper">

    <resultMap id="UserResultMap" type="com.sandy.api.entity.UserEntity">
        <result column="id" jdbcType="INTEGER" property="id"/>
        <result column="name" jdbcType="VARCHAR" property="name"/>
        <result column="sex" jdbcType="INTEGER" property="sex"/>
        <result column="password" jdbcType="VARCHAR" property="password"/>
        <result column="mobile" jdbcType="VARCHAR" property="mobile"/>
        <result column="email" jdbcType="VARCHAR" property="email"/>
    </resultMap>

    <!-- 根据用户名查询用户数据 -->
    <select id="doLogin" resultMap="UserResultMap" parameterType="java.lang.String">
        select id,name,sex,password,mobile,email from user where name = #{name} and password = #{pwd};
    </select>

</mapper>

创建UserService.java

package com.sandy.api.service;

import com.sandy.api.entity.UserEntity;

/**
 * 用户相关
 * @author mrche
 */
public interface UserService {
    /**
     * 登录
     * @param name
     * @param pwd
     * @return
     */
    public UserEntity doLogin(String name, String pwd);
}

创建UserService实现类UserServiceImpl.java

package com.sandy.api.service.impl;

import com.sandy.api.entity.UserEntity;
import com.sandy.api.mapper.UserMapper;
import com.sandy.api.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 用户相关
 * @author mrche
 */
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    UserMapper userMapper;

    /**
     * 登录
     * @param name
     * @param pwd
     * @return
     */
    @Override
    public UserEntity doLogin(String name, String pwd) {
        return userMapper.doLogin(name,pwd);
    }
}

创建LoginController.java

package com.sandy.api.controller;

import com.sandy.api.entity.UserEntity;
import com.sandy.api.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * 登录相关
 * @author mrche
 */
@RestController
@RequestMapping("/auth")
public class LoginController {
    @Autowired
    private UserService userService;

    @RequestMapping("/login")
    public Map doLogin(@RequestBody Map<String, Object> params){
        Map<String,Object> resultMap = new HashMap<>();
        resultMap.put("resultCode",0);
        resultMap.put("resultMsg","登录成功");

        String name = String.valueOf(params.get("name"));
        String pwd = String.valueOf(params.get("pwd"));
        UserEntity userEntity = userService.doLogin(name,pwd);
        if (userEntity == null){
            resultMap.put("resultCode",1);
            resultMap.put("resultMsg","用户名或密码错误");
        }else {
            resultMap.put("data",userEntity.toString());
        }
        return resultMap;
    }
}

项目目录如下:


至此,一个最简单得后端项目创建完毕。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。