zoukankan      html  css  js  c++  java
  • 从无到有,手把手教你用Maven怒草一个SpringBoot项目出来

    1、使用Navicat 新建一个数据库

    2、新建一个数据表

    CREATE TABLE t_user(
    id int(6) PRIMARY KEY auto_increment,
    name VARCHAR(40),
    age int(3),
    bir TIMESTAMP
    )

    3、新建一个project,file->new->project
    选择maven,webapp

    填写项目组织和项目名

    下面是你配置好的maven仓库

    下一步不用管,finish

     

    4、修改pom文件

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>com.jackson</groupId>
    <artifactId>vue_cli</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    
    <name>vue_cli Maven Webapp</name>
    <url>http://www.example.com</url>
    
    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    
    <dependencies>
    
    </dependencies>
    
     
    
    <build>
    
    </build>
    
    
    </project>
    
    5、导入项目依赖
    <dependencies>
    
    <!--SpringBoot的web依赖-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <!--引入mybatis-->
    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.2</version>
    </dependency>
    
    <!--lombok-->
    <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
    <scope>provided</scope>
    </dependency>
    
    <!--数据库驱动-->
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.13</version>
    </dependency>
    
    <!--druid驱动-->
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.13</version>
    </dependency>
    
    </dependencies>

    6、修改项目结构
    在main新建java文件夹,刷新maven项目

     

    干掉整个webapp

    新建springboot配置文件

    java文件夹中构建主入口类

    手撸启动类代码

    package com.jackson;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
    * @Author Jackson
    * @Date 2020-05-02 19:41
    * @Description
    **/
    @SpringBootApplication
    public class VuecliApplication {
    public static void main(String[] args) {
    SpringApplication.run(VuecliApplication.class, args);
    }
    }

    手撸配置文件

    spring.application.name=vue
    server.port=8989
    server.servlet.context-path=/vue
    
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/vue?characterEncoding=UTF-8
    spring.datasource.username=root
    spring.datasource.password=梵蒂冈
    
    mybatis.mapper-locations=classpath:com/jackson/mapper/*.xml
    mybatis.type-aliases-package=com.jackson.entity
    comtroll
    logging.level.root=info
    logging.level.com.jackson.dao=debug

    新建四个包结构

    resources新建mapper配置文佳的位置

    7、新建实体类

    package com.jackson.entity;
    
    import com.fasterxml.jackson.annotation.JsonFormat;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import lombok.ToString;
    import lombok.experimental.Accessors;
    
    import java.util.Date;
    
    /**
    * @Author Jackson
    * @Date 2020-05-02 19:58
    * @Description
    **/
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @ToString
    @Accessors(chain=true)
    public class User {
    
    private String id;
    
    private String name;
    
    private Integer age;
    
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GTM+8")
    private Date bir;
    }


    8、新建dao接口

    package com.jackson.dao;
    
    import com.jackson.entity.User;
    import org.apache.ibatis.annotations.Mapper;
    
    import java.util.List;
    
    @Mapper
    public interface UserDao {
    
    void save(User user);
    
    void update(User user);
    
    void delete(User user);
    
    List<User> findAll();
    
    User findById(String id);
    
    }


    9、新建一个mapper模板

    用新建的模板新建一个mapper文件,手撸mapper文件,添加的时候key自动生成

    <?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.jackson.dao.UserDao">
    
    <insert id="save" parameterType="com.jackson.entity.User" useGeneratedKeys="true" keyProperty="id">
    insert into t_user values (#{id}, #{name}, #{age}, #{bir})
    </insert>
    
    <update id="update" parameterType="com.jackson.entity.User">
    update t_user
    set name = #{name}, age = #{age}, bir = #{bir}
    where id = #{id}
    </update>
    
    <select id="findAll" resultType="com.jackson.entity.User">
    select id, name, age, bir from t_user
    </select>
    
    <delete id="delete" parameterType="String">
    delete from t_user where id = #{id}
    </delete>
    
    <select id="findById" parameterType="String" resultType="com.jackson.entity.User">
    select id, name, age, bir from t_user where id = #{id}
    </select>
    
    </mapper>


    10、新建service接口

    package com.jackson.service;
    
    import com.jackson.entity.User;
    
    import java.util.List;
    
    public interface UserService {
    
    void save(User user);
    
    void update(User user);
    
    void delete(String id);
    
    List<User> findAll();
    
    User findById(String id);
    
    }


    11、接口的实现

    package com.jackson.service;
    
    import com.jackson.dao.UserDao;
    import com.jackson.entity.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;
    
    import java.util.List;
    
    /**
    * @Author Jackson
    * @Date 2020-05-02 20:37
    * @Description
    **/
    @Service
    @Transactional
    public class UserServiceImpl implements UserService {
    
    @Autowired
    private UserDao userDao;
    
    @Override
    public void save(User user) {
    userDao.save(user);
    }
    
    @Override
    public void update(User user) {
    userDao.update(user);
    }
    
    @Override
    public void delete(String id) {
    userDao.delete(id);
    }
    
    @Override
    public List<User> findAll() {
    return userDao.findAll();
    }
    
    @Override
    public User findById(String id) {
    return userDao.findById(id);
    }
    
    }


    12、手撸controller

    package com.jackson.controller;
    
    import com.jackson.entity.User;
    import com.jackson.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
    * @Author Jackson
    * @Date 2020-05-02 20:45
    * @Description
    **/
    @RestController
    @CrossOrigin
    @RequestMapping("user")
    public class UserController {
    
    @Autowired
    private UserService userService;
    
    /**
    * 查询所有数据
    * @param page
    * @param rows
    * @return
    */
    @GetMapping("findAll")
    public Map<String, Object> findAll(Integer page, Integer rows) {
    HashMap<String, Object> map = new HashMap<>();
    List<User> results = userService.findAll();
    map.put("total", 10);
    map.put("totalPage", 1);
    map.put("page", page);
    map.put("results", results);
    return map;
    }
    
    /**
    * 添加用户
    * @param user
    * @return
    */
    @PostMapping("add")
    public Map<String, Object> add(@RequestBody User user) {
    HashMap<String, Object> map = new HashMap<>();
    try {
    userService.save(user);
    map.put("success", true);
    map.put("msg", "添加用户信息成功");
    } catch (Exception e) {
    e.printStackTrace();
    map.put("success", false);
    map.put("msg", "添加用户失败:" + e.getMessage());
    }
    return map;
    }
    
    /**
    * 删除用户
    * @param id
    * @return
    */
    @GetMapping("delete")
    public Map<String, Object> delete(String id) {
    HashMap<String, Object> map = new HashMap<>();
    try {
    userService.delete(id);
    map.put("success", true);
    map.put("msg", "删除用户信息成功");
    } catch (Exception e) {
    e.printStackTrace();
    map.put("success", false);
    map.put("msg", "删除用户失败:" + e.getMessage());
    }
    return map;
    }
    
    /**
    * 查询一条信息
    * @param id
    * @return
    */
    @GetMapping("findOne")
    public User findOne(String id) {
    return userService.findById(id);
    }
    
    /**
    * 修改用户
    * @param user
    * @return
    */
    @PostMapping("update")
    public Map<String, Object> update(@RequestBody User user) {
    HashMap<String, Object> map = new HashMap<>();
    try {
    userService.update(user);
    map.put("success", true);
    map.put("msg", "修改用户信息成功");
    } catch (Exception e) {
    e.printStackTrace();
    map.put("success", false);
    map.put("msg", "修改用户失败:" + e.getMessage());
    }
    return map;
    }
    }

    引用:哔哩哔哩,编程不良人up主

  • 相关阅读:
    系统振动的稳定性分析
    算法
    九眼智能:信息安全是网络发展的关键
    运用大数据技术筑起网络安全防火墙
    网络安全维护九眼智能大数据显身手
    九眼智能大数据技术助力网络信息安全
    九眼智能:用大数据技术为网络信息加层“滤网”
    大数据如何解决人工智能对文本挖掘的挑战
    “键盘侠”行为规则出台网络信息盼清洁
    灵玖NLPIRParser大数据挖掘系统智能摘要
  • 原文地址:https://www.cnblogs.com/blogs-jch/p/12820190.html
Copyright © 2011-2022 走看看