从零构建一个JAVA(SpringBoot)项目

从零构建一个JAVA(SpringBoot)项目

1.创建一个Maven项目

1.1打开IDEA,点击创建项目

在这里插入图片描述

1.2 编写Hello World测试项目是否构建成功

在这里插入图片描述

1.3 修改Maven本地仓库地址

在这里插入图片描述

1.4 把项目提交到码云

  • 选择本地仓库

在这里插入图片描述

在这里插入图片描述

  • 提交(commit)到本地仓库

在这里插入图片描述

1.5 推送到远程仓库

  • 快捷键:Ctrl+Shift+K

在这里插入图片描述

  • 复制远程新建的仓库连接并粘贴

在这里插入图片描述

在这里插入图片描述

  • OK后的状态,点击push即可上传到远程仓库

在这里插入图片描述

问题:

1.Push rejected Push to origin/master was rejected

大概原因是:初始化项目时,远程仓库我建了README.md文件,而本地仓库与远程仓库尚未进行文件关联,因此需要将两个仓库的文件进行关联后提交。

1.切换到自己项目所在的目录,右键选择GIT BASH Here,Idea中可使用Alt+F12

2.在terminl窗口中依次输入命令:

git pull

git pull origin master

git pull origin master --allow-unrelated-histories

3.在idea中重新push自己的项目

git push -u origin master -f

2.Git 中 出现couldn’t find remote ref –allow-unrelated-histories的解决办法

当执行git中的“git pull origin master –allow-unrelated-histories”命令时,会出现“ couldn’t find remote ref –allow-unrelated-histories”的错误,输入如下命令即可解决:
git pull --rebase origin master
git push origin maste

2.构建SpringBoot项目架构

2.1创建数据库

在这里插入图片描述

  • 创建表

在这里插入图片描述

在这里插入图片描述

也可以通过sql创建表,添加字段信息,可以按F6切换到sql界面

2.2创建SpringBoot脚手架

  • 配置SpringBoot依赖,编写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/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
  
      <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>2.3.1.RELEASE</version>
      </parent>
  
      <groupId>org.xph</groupId>
      <artifactId>profile</artifactId>
      <version>1.0-SNAPSHOT</version>
  
  
      <properties>
          <maven.compiler.source>8</maven.compiler.source>
          <maven.compiler.target>8</maven.compiler.target>
      </properties>
  
      <dependencies>
          <!--  web-->
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
          </dependency>
          <!-- mysql数据库驱动-->
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>8.0.17</version>
          </dependency>
  <!--        数据库连接池-->
  
          <dependency>
              <groupId>com.alibaba</groupId>
              <artifactId>druid</artifactId>
              <version>1.2.3</version>
          </dependency>
  <!--        fastjson-->
          <dependency>
              <groupId>com.alibaba</groupId>
              <artifactId>fastjson</artifactId>
              <version>1.2.75</version>
          </dependency>
          <dependency>
              <groupId>cn.hutool</groupId>
              <artifactId>hutool-all</artifactId>
              <version>5.5.8</version>
          </dependency>
      </dependencies>
  
  </project>
  • 编写Springboot启动类:

在这里插入图片描述

  • 编写测试Controller类

    package com.xph.demo;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class demoController {
    
        @RequestMapping("/hello")
        public String hello()
        {
            return "Hello World";
        }
    }
    
    

    @RestController

    @RestController = @Controller + @ResponseBody组成,等号右边两位同志简单介绍两句,就明白我们@RestController的意义了:

    • @Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。当然也有语义化的作用,即代表该类是充当Controller的作用
    • @ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端,本人尝试了一下,如果返回的是String类型,则仍然是String

    @RequestMapping

    作用:将请求和处理请求的控制器方法关联起来,建立映射关系。
    位置:
    1、标识类:设置映射请求的请求路径的初试信息
    2、表示方法:设置映射请求的请求路径的具体信息

  • 输入http://localhost:8080/hello,测试

在这里插入图片描述

2.3 SpringBoot连接MYSQL数据库

  • 添加mybatis-plus依赖

    <!--        mybatis-plus-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.4.2</version>
            </dependency>
    
  • 添加完,完整的pom.xml文件如下

    <?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/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.3.1.RELEASE</version>
        </parent>
    
        <groupId>org.xph</groupId>
        <artifactId>profile</artifactId>
        <version>1.0-SNAPSHOT</version>
    
    
        <properties>
            <maven.compiler.source>8</maven.compiler.source>
            <maven.compiler.target>8</maven.compiler.target>
        </properties>
    
        <dependencies>
            <!--  web-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!-- mysql数据库驱动-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.17</version>
            </dependency>
    <!--        数据库连接池-->
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.2.3</version>
            </dependency>
    <!--        fastjson-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.75</version>
            </dependency>
    <!--        hutool-all-->
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>5.5.8</version>
            </dependency>
    <!--        mybatis-plus-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.4.2</version>
            </dependency>
        </dependencies>
    
    </project>
    
  • 配置数据库相关设置

    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        username: root
        password: root
        url: jdbc:mysql://localhost:3306/person_profile?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    mybatis-plus:
      mapper-locations: classpath*:/mapper/**/*.xml
      configuration:
        map-underscore-to-camel-case: true
        cache-enabled: true
        lazy-loading-enabled: true
        multiple-result-sets-enabled: true
        log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
      global-config:
        db-config:
          id-type: assign_id
          table-underline: true
        banner: false
        enable-sql-runner: true
      configuration-properties:
        prefix:
        blobType: BLOB
        boolValue: true
    
    
    

    2.4建立规范化的SpringBoot模块

在这里插入图片描述

  • 编写数据库实体类

在这里插入图片描述

package com.xph.moduler.demo.pojo;

import com.baomidou.mybatisplus.annotation.TableName;

import java.security.PrivateKey;
import java.sql.PreparedStatement;

@TableName("student")
public class Student {
    /*
    * 姓名
    * */
    private String name;
    /*
     * 年龄
     * */
    private Integer age;
    /*
     * 编号
     * */
    private Integer id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
}
  • 编写Mapper

在这里插入图片描述

package com.xph.moduler.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xph.moduler.demo.pojo.Student;

@Mapper
public interface StudentMapper extends BaseMapper<Student> {
}
  • 编写Service

在这里插入图片描述

package com.xph.moduler.demo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xph.moduler.demo.pojo.Student;

public interface StudentService extends IService<Student> {
}

  • 编写ServiceImpl

在这里插入图片描述

package com.xph.moduler.demo.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xph.moduler.demo.mapper.StudentMapper;
import com.xph.moduler.demo.pojo.Student;
import com.xph.moduler.demo.service.StudentService;
import org.springframework.stereotype.Service;

@Service
public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> implements StudentService {
}

  • 编写Controller

    package com.xph.moduler.demo.controller;
    
    import com.xph.moduler.demo.pojo.Student;
    import com.xph.moduler.demo.service.StudentService;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    @RestController
    public class demoController {
    
        @Resource
        private StudentService studentService;
    
        @RequestMapping("/student")
        public List<Student> getStudentList() {
            return studentService.list();
        }
    
        @RequestMapping("/hello")
        public String hello() {
            return "Hello World";
        }
    }
    
    
  • 输入http://localhost:8080/student

  import java.util.List;
  
  @RestController
  public class demoController {
  
      @Resource
      private StudentService studentService;
  
      @RequestMapping("/student")
      public List<Student> getStudentList() {
          return studentService.list();
      }
  
      @RequestMapping("/hello")
      public String hello() {
          return "Hello World";
      }
  }


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 安装JDK 首先需要安装JDK,可以在Oracle官网或者OpenJDK官网下载对应系统的JDK安装包。下载完成后,按照安装向导进行安装。 2. 安装Maven Maven是一个项目管理工具,可以用于构建、打包、发布和管理Java项目。可以在Maven官网下载对应系统的Maven安装包,下载完成后,按照安装向导进行安装。 3. 创建Spring Boot项目 可以使用Spring Initializr创建一个基本的Spring Boot项目。在浏览器中打开 https://start.spring.io/,选择需要的依赖和配置,然后点击Generate按钮下载项目。将下载的项目解压到任意目录下。 4. 安装MySQL 可以在MySQL官网下载对应系统的MySQL安装包,下载完成后,按照安装向导进行安装。安装完成后,启动MySQL服务。 5. 创建数据库和表 使用MySQL客户端连接到MySQL服务器,创建一个新的数据库和表。可以使用以下命令: ``` CREATE DATABASE springbootdb; USE springbootdb; CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; ``` 6. 编辑application.properties文件 在Spring Boot项目的根目录下,找到src/main/resources/application.properties文件。编辑该文件,添加以下配置: ``` spring.datasource.url=jdbc:mysql://localhost:3306/springbootdb spring.datasource.username=root spring.datasource.password=your_password_here spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect ``` 将your_password_here替换为MySQL的root用户密码。 7. 编写Controller和Service 在src/main/java/com/example/demo下创建一个UserController类和一个UserService类。 UserController.java文件内容如下: ``` @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public List<User> getUsers() { return userService.getUsers(); } @PostMapping("/users") public void addUser(@RequestBody User user) { userService.addUser(user); } } ``` UserService.java文件内容如下: ``` @Service public class UserService { @Autowired private UserRepository userRepository; public List<User> getUsers() { return userRepository.findAll(); } public void addUser(User user) { userRepository.save(user); } } ``` 8. 编译和运行项目 在命令行中进入Spring Boot项目的根目录,运行以下命令: ``` mvn clean package java -jar target/demo-0.0.1-SNAPSHOT.jar ``` 其中demo-0.0.1-SNAPSHOT.jar是根据项目名称和版本号生成的文件名,可以根据实际情况进行修改。 9. 测试API 在浏览器或者Postman中访问http://localhost:8080/users,可以获取到所有用户的信息。使用POST方法访问http://localhost:8080/users,并发送一个JSON格式的请求体,可以添加一个新用户。例如: ``` { "name": "Alice", "email": "[email protected]" } ``` 在数据库中查询,可以确认新用户已经被添加。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值