Java教程

SpringBoot手动搭建环境、Entity、Dao层开发、数据库模型设计

本文主要是介绍SpringBoot手动搭建环境、Entity、Dao层开发、数据库模型设计,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

SpringBoot手动搭建环境、Entity、Dao层开发、数据库模型设计

如果插件Spring Assistant与我们的电脑有冲突,那我们就不要选择此插件,

自己来搭建环境创建项目

1、创建项目

(1)选择Maven项目创建

image

(2)自定义名称

image

(3)创建完成的样子

image

2、手动搭建SpringBoot环境

(1)将SpringBoot的依赖添加到pom.xml中

  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
  </parent>

(2)将项目的编码添加到pom.xml中的

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

image

(3)将项目所需要的依赖添加到pom.xml中

<dependencies>
        <!--添加Springmvc依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- springBoot JPA的起步依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <!--因为此项目需要mysql的库,那么添加mysql依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

(4)SpringBoot打包的方式和其他东西打包有一定的差别,需要特定的插件

将需要的插件添加pom.xml中

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.1.4.RELEASE</version>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>

(5)刷新一下Maven:鼠标右击----选择Maven----选择Reload project

3、添加mysql配置文件

因为SpringBoot文件最终要放到某一个库里面,本次使用mysql数据库

所以需要配置mysql数据库的地址

先建一个表

(1)在mysql中新建一个数据库,命名为 springbootdemo

(2)在 springbootdemo库中,自定义设计一个表

create table  Student(
    id int primary key auto_increment,
    name varchar(255) not null,
    age int not null default 0,
    gender varchar(255),
    clazz varchar(255),
    sum_score int
);

-- 对name做索引
create index stu_name_index on Student(name);

(2)返回IDEA,右击项目名称,选择 new---->Directory 新建一个目录,命名为 data

(3)右击data目录,选择 new---->File 新建一个文件,命名为 student.sql

(4)将自定义表的代码粘贴到 student.sql 文件中

添加mysql配置文件

(5)在 scr---->main---->resources 新建一个File,名称有讲究的,命名为:application.properties

将下面代码粘贴到 application.properties 文件中

(主机名master、权限root、密码123456,可能有所不同,根据个人情况,进行修改)

# 对MySQL连接进行配置
spring.datasource.url=jdbc:mysql://master:3306/springbootdemo?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
spring.datasource.username=root
spring.datasource.password=123456
# mysql驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

4、创建SpringBoot的项目入口

(1)在 scr---->main---->java 中先新建一个包,例:com.shujia

(2)在新建的包内,新建一个class文件,例:SpringBootDemoApplication

(3)在类上方艾特一下SpringBootApplication(表示这个类是作为SpringBoot的应用)

(4)添加main方法

image

(5)添加启动Spring应用的代码(在main方法中):SpringApplication.run(类名.class,args);

//启动Spring应用
SpringApplication.run(SpringBootDemoApplication.class,args);

(6)运行程序

image

5、创建SpringBoot项目的结构层

(1)先创建结构层的目录,在 scr---->main---->java---->com.shujia 中创建目录

目录1:Entity-------数据库的模型
目录2:Dao----------数据持久层
目录3:Service------数据服务层
目录4:Controller---数据控制层
目录5:common

(2)编辑 Entity 层,在目录 Entity 新建一个class文件,命名和前面自定义的表名保持一致

package com.shujia.Entity;

import javax.persistence.*;

@Entity
@Table(name = "student")	//用小写
public class Student {
    //定义属性
    @Id //设置主键
    @GeneratedValue(strategy = GenerationType.IDENTITY)     //设置Id自增
    private Integer id;
    private String name;
    private Integer age;
    private String gender;
    private String clazz;
    //属性名一般同数据库中表的列名一致,不一致时可以使用 @Column 注解
    @Column(name = "sum_score")
    private Integer sumScore;

    //添加公共的getXxx()和setXxx()方法
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = 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 String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getClazz() {
        return clazz;
    }

    public void setClazz(String clazz) {
        this.clazz = clazz;
    }

    public Integer getSumScore() {
        return sumScore;
    }

    public void setSumScore(Integer sumScore) {
        this.sumScore = sumScore;
    }
}

(3)编辑 Dao 层,新建一个接口,命名为 StudentRepository

(除了Dao层是接口,其他层都是类)

package com.shujia.Dao;

import com.shujia.Entity.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository 
//该接口继承 JpaRepository,并指定泛型
public interface StudentRepository extends JpaRepository<Student,Integer> {
}

(4)编辑 Service 层,在目录Service 新建一个class文件,命名为:StudentService

在Service 层内,可以进行增删改查、分页、保存等等

import com.shujia.Dao.StudentRepository;
import com.shujia.Entity.Student;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class StudentService {
    @Resource   //Dao层作为资源,添加资源注解
    //引用Dao层的资源
    private StudentRepository studentRepository;

    public List<Student> findAll(){
        return studentRepository.findAll()
    }
}

(5)编辑 Controller 层,在目录Controller新建一个class文件,命名为:StudentController

@RestController //将数据以json的 格式返回
@RequestMapping("/student")
public class StudentController {

    @RequestMapping("/all")
    public List<Student> findAll(){

    }

    @RequestMapping("/all2")
    public List<Student> findAll2(){

    }
}

(6)编辑 common 层,在目录common新建一个class文件,命名为:Result

用户-----请求(Req)----->服务器
服务器-----返回(Res)--->用户

返回给用户的一般有:状态码、消息、数据

基于状态码、消息、数据,我们可以在Java中定义一个类来描述它们

根据类返回一个对象给用户,对象中包含状态码、消息、数据

package com.shujia.common;
public class Result <T> {   //返回的东西不确定,在类后面加个泛型
    //定义属性
    private String code;    //定义返回的状态码
    private String msg;     //定义返回的消息
    private T data;    //定义返回的数据(不确定类型,使用泛型T)

    //加入构造方法和公共的getXxx()、setXxx()
    public Result() {

    }

    public Result(T data) {
        this.data = 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 static <T> Result<T> sucess(){
        Result rs = new Result<>();
        rs.setCode("200");
        rs.setMsg("OK");
        return rs;
    }

    //请求成功,返回数据
    public static <T> Result<T> sucess(T data){
        Result<T> rs = new Result<T>(data);
        rs.setCode("200");
        rs.setMsg("OK");
        return rs;
    }

    //请求失败
    public static <T> Result<T> error(String  code,String msg){
        Result rs = new Result<>();
        rs.setCode(code);
        rs.setMsg(msg);
        return rs;
    }
}

(7)在common层设置了静态方法,这时候还需要返回 Controller 层修改一下代码

package com.shujia.Controller;

import com.shujia.Entity.Student;
import com.shujia.Service.StudentService;
import com.shujia.common.Result;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

@RestController //将数据以json的 格式返回
@RequestMapping("/student")
public class StudentController {
    @Resource   //作为资源
    private StudentService studentService;//定义属性,将studentService引进来

    @GetMapping("/all")
    public Result<List<Student>> findAll(){
        List<Student> list = studentService.findAll();
        return Result.success(list);
    }

    @GetMapping("/all2")
    public Result<List<Student>> findAll2(){
        List<Student> list = studentService.findAll();
        return Result.success(list);
    }
}

(9)开始运行,查看是否有错误

(8)若无错误,在浏览器输入 http://localhost:8080/student/all ,出现如下所示,表示所有东西创建成功

image

这篇关于SpringBoot手动搭建环境、Entity、Dao层开发、数据库模型设计的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!