IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> springboot+vue从零开始开发(一)springboot后端配置编写 -> 正文阅读

[Java知识库]springboot+vue从零开始开发(一)springboot后端配置编写

IDEA下载

IDEA好贵,想要学生认证白嫖,结果哈工大的学生邮箱非得加个stu的后缀导致无法识别,还得通过人工认证…

springboot initializr

打开idea创建一个新项目,记得先配置java环境(你发任你发,我用java8)
在这里插入图片描述

运行环境配置

点击右侧maven打开工具箱,
在这里插入图片描述
双击lifecycle中的install
在这里插入图片描述
install完后,项目即可运行,run一下,打开网页localhost:8080,出现如下页面。
在这里插入图片描述
在这里插入图片描述

建立controller

其为MVC三层架构中的一层,用于将用户请求转发给相应的 Model 进行处理,并根据 Model 的计算结果向用户提供相应响应。它是springboot里最基本的组件,这里我们用其来接收用户提交请求,进行URL匹配,进行处理后,再返回给用户。
这里我们首先在主程序所在文件夹建立一个controller包
在这里插入图片描述
然后在该包下编写一个hello.java程序,其中注解@RestController表示该类处理http请求,@RequestMapping 配置url映射关系

package com.example.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class hello {
    @RequestMapping("/hello")
    public String helloController(){
        return "Hello World";
    }
}

再run一下,并打开localhost:8080/hello
在这里插入图片描述

mysql文件准备

我这里准备了一个建好User表的数据库university,其中User表里有uname和password两个属性。
通过下列代码进行导入

mysql -u root -p
create database university;
use university;
source university.sql;

springboot 后端配置

pom.xml配置

pom是project object model的简称,是maven项目中的文件,用于管理源代码,配置文件,开发者的信息和角色,项目url,依赖关系等等,这里引入mysql连接驱动,mybatis依赖,以及io工具类

<?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 https://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.6.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo1</name>
    <description>demo1</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- Spring Boot Mybatis 依赖 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
        <!-- MySQL 连接驱动依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>

        <!--io工具类-->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

dao文件编写

dao层是MVC架构中的数据访问层,也是mapper层,具体到对某个表的增删改查,某个dao一定和数据库中每个表对应,建议其只做原子操作。

package com.example.demo.dao;

import com.example.demo.bean.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

//使用注解定义为一个接口interface,同时为这个类生成一个实现类从而让别的类调用
@Mapper
public interface UserDao {

    //新增数据
    @Insert("insert into user values (#{uname}, #{password})")
    void addUser(User user);

    //update data
    @Update("update user set password = #{password} where uname = #{uname}")
    void updateUser(User user);

    //select
    @Select("select * from user")
    List<User> selectAll();

}

service文件编写

service层是服务层,也就是对多个dao进行再次封装,封装成一个事务处理。

package com.example.demo.service;

import com.example.demo.bean.User;

import java.util.List;

public interface userService {
    /**
     * 新增用户
     * @param user
     * @return
     */
    boolean addUser(User user);

    /**
     * 查询所有
     * @return
     */
    List<User> selectAll();
}

package com.example.demo.service;

import com.example.demo.bean.User;
import com.example.demo.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class userServiceImpl implements  userService{
    //自适应配置
    @Autowired
    private UserDao userDao;

    @Override
    public boolean addUser(User user) {
        boolean flag = false;
        try{
            userDao.addUser(user);
            flag = true;
        }
        catch (Exception e){
            e.printStackTrace();
        }
        return flag;
    }

    @Override
    public List<User> selectAll() {
        return userDao.selectAll();
    }
}

controller再编写

@RequestBody用于接收前端传递给后端的json字符串,使用注解@Autowired来引用服务

package com.example.demo.controller;

import com.example.demo.bean.User;
import com.example.demo.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.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class hello {
    @Autowired
    private userService userservice;

    @RequestMapping("/hello")
    public String helloController(){
        return "Hello World";
    }

    @RequestMapping(value = "/user", method = RequestMethod.POST)
    public boolean addUser(@RequestBody User user){
        System.out.println("新增数据");
        return userservice.addUser(user);
    }

    @RequestMapping(value = "/userAll", method = RequestMethod.GET)
    public List<User> selectAll(){
        System.out.println("查询所有数据");
        return userservice.selectAll();
    }
}

application.properties

配置对应数据库

spring.datasource.url=jdbc:mysql://localhost:3306/university?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&useSSL=false
spring.datasource.username={your username}
spring.datasource.password={your password}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#注意mysql8.0版本以下用com.mysql.jdbc.Driver,以上用com.mysql.cj.jdbc.Driver

## Mybatis
# 配置实体类位置
mybatis.typeAliasesPackage=com.example.demo.bean
# 配置mapper位置
mybatis.mapperLocations=classpath\:mapper/*.xml

最后访问页面成功查询到数据
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:22:34  更:2022-04-22 18:25:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:21:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码