前端开发如何速成java,使用java开发网络接口

这篇具有很好参考价值的文章主要介绍了前端开发如何速成java,使用java开发网络接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

我是干前端的,闲来没事,也想学学java,下面我会根据我学习java的经历来整理出java的速成之路。

学习路线

按照数字的顺序学下去就行了
1.学习java基础教程:主要听 class集合这两部分吧,这两个部分非常重要,也是开发中用到最多的,还有就是一些基本的数据类型要知道,别的带过一下就行了,jdk建议安装jdk8,不然学习过程中会遇到一些问题。
2.了解并安装maven,了解如何使用maven创建项目,以及pom.xml文件的使用。
3.学习mysql,安装mysql服务和可视化工具,掌握一下基本的增删改查语句就行了,可视化工具建议安装SQLyog ,不建议使用navcat,在公司使用容易收到律师函,别问我怎么知道的,你可以试试。
4.学习spring boot,了解如何创建spring boot项目以及项目的目录结构,学会在spring boot项目整合 mybatis plus,其他的对于入门来说不重要,咋们开发的接口,主要也就是操作数据库然后响应数据给浏览器。

使用spring boot项目开发接口

创建 spring boot项目

因为咋们是前端,自然会爱vscode多一点,用idea咋们估计用不惯。vscode可以写java一点问题没有,因为我一学习过程中直都是用vscode写java的,咋们只需要安装一下这几个插件就行了 Extension Pack for JavaMaven for JavaMaven dependency explorerSpring Initializr Java Support
1.
前端开发如何速成java,使用java开发网络接口
2.
前端开发如何速成java,使用java开发网络接口3.
前端开发如何速成java,使用java开发网络接口4.
前端开发如何速成java,使用java开发网络接口
5.版本随便选吧。我选的最新的版本,我用的jdk17
前端开发如何速成java,使用java开发网络接口
6.
前端开发如何速成java,使用java开发网络接口
7.公司域名倒写
前端开发如何速成java,使用java开发网络接口
8.项目名称,不建议带符号和大写,因为我有次带了跑不起来
前端开发如何速成java,使用java开发网络接口
9.
前端开发如何速成java,使用java开发网络接口
10.选择自己安装的jdk版本
前端开发如何速成java,使用java开发网络接口
11.选择依赖,我勾选的是我选的,选好回车,然后选择项目所放置的文件夹
前端开发如何速成java,使用java开发网络接口12.
前端开发如何速成java,使用java开发网络接口
13.此时编辑器右下角会出现一个提示,咋们点提示中的check detail,是蓝色字样,点了之后,就开始安装依赖,安装依赖较慢,需要耐心等待。因为我安装之前过了,缓存了,所以没给我提示。
14.在pom.xml添加mybatis plus及其他需要用到的依赖

<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>3.0.2</version>
</dependency>
<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.15</version>
</dependency>
<dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt</artifactId>
      <version>0.9.1</version>
</dependency>
<dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.8.0</version>
  </dependency>
 <dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-all</artifactId>
      <version>5.8.19</version>
  </dependency>

15.建立规范的项目目录
前端开发如何速成java,使用java开发网络接口

MySQL中创建表

前端开发如何速成java,使用java开发网络接口

整合mybatis plus

首先连接数据库,在.yml文件配置如下

spring:
  datasource: 
       driver-class-name: com.mysql.cj.jdbc.Driver   
       url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC
       username: username
       password: password

然后创建根据表创建实体类

// Emp.java
package com.example.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Builder;
import lombok.Data;

@Data
@Builder
@TableName(value="emp")
public class Emp {
  public Integer id;
  @TableField(value="emp_name") public String name;   // 可以这样用成员变量来映射表的字段
  public int age;
  public double salary;
  public double reward;
  public double asset;
  @TableField(value="dep_id") public Integer depId;

  Emp(){}
  public Emp(Integer id,String name,int age,double salary,double reward,double asset,Integer depId){
     this.id=id;
     this.name=name;
     this.age=age;
     this.salary=salary;
     this.reward=reward;
     this.asset=asset;
     this.depId=depId;
  }
}

最后创建接口整合mybatis plus

// empDao.java
package com.example.dao;

import org.apache.ibatis.annotations.Mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.entity.Emp;


// mybatis plus
@Mapper
public interface empDao extends BaseMapper<Emp>{
// 也可以在里面加些自己的查询方法,当然mybatis-plus没有的才加,不然直接用它提供的方法就好。复杂查询我不会,这里就随便加个了
  @Select("select * from emp")  
  public ArrayList<Emp> getAllEmp();
}

创建接口中需要用到的数据类型

前端开发如何速成java,使用java开发网络接口

开发接口

// empController.java

package com.example.controller;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.dao.empDao;
import com.example.entity.Emp;
import com.example.pojo.deleteParams;
import com.example.pojo.listSearchCdt;
import com.example.pojo.listSearchResult;
import com.example.pojo.resultType;

@RestController
@RequestMapping("/emp")
public class empController {
  @Autowired empDao empDao;
  
   
  @GetMapping("/test")
  public String test(){
      return "hhhh";
  }
  
  @GetMapping("/all")
  public resultType<List<Emp>> getAllEmp(){
   resultType<List<Emp>> res=new resultType<>();
   List<Emp> data=empDao.selectList(null);
   try {
     res.code=data!=null?200:201;
     res.data=data;
     res.message=data!=null?"查询所有记录成功":"查询所有记录失败";
   } catch (Exception e) {
     res.code=500;
     res.error=e;
     res.message="服务器繁忙!";
   }
   return res;
  }

  @PostMapping
   public resultType<Boolean> addEmp(@RequestBody Emp emp){
    resultType<Boolean> res=new resultType<>();
    Boolean isSuccess=empDao.insert(emp)>0;
    try {
      res.code=isSuccess?200:201;
      res.data=isSuccess;
      res.message=isSuccess?"新增成功":"新增失败";
    } catch (Exception e) {
      res.code=500;
      res.error=e;
      res.message="服务器繁忙!";
    }
    return res;
   }

   @DeleteMapping
   public resultType<Boolean> deleteEmp(@RequestBody deleteParams params){
    resultType<Boolean> res=new resultType<>();
    Boolean isSuccess=empDao.deleteById(params.id)>0;
    try {
     res.code=isSuccess?200:201;
     res.data=isSuccess;
     res.message=isSuccess?"删除成功":"删除失败";
    } catch (Exception e) {
      res.code=500;
      res.error=e;
      res.message="服务器繁忙!";
    }
    return res;
   }

   @PostMapping("/deleteMany")
   public resultType<Boolean> deleteEmps(@RequestBody deleteParams params){
    resultType<Boolean> res=new resultType<>();
    Boolean isSuccess=empDao.deleteBatchIds(params.ids)>0;
    try {
     res.code=isSuccess?200:201;
     res.data=isSuccess;
     res.message=isSuccess?"批量删除成功":"批量删除失败";
    } catch (Exception e) {
      res.code=500;
      res.error=e;
      res.message="服务器繁忙!";
    }
    return res;
   }
   
  @PutMapping
   public resultType<Boolean> updateEmp(@RequestBody Emp emp){
     resultType<Boolean> res=new resultType<>();
     Boolean isSuccess=empDao.updateById(emp)>0;
     
     try {
      res.code=isSuccess?200:201;
      res.data=isSuccess;
      res.message=isSuccess?"更新成功":"更新失败";
     } catch (Exception e) {
      res.code=500;
      res.error=e;
      res.message="服务器繁忙!";
     }
     return res;
   }

   @GetMapping("/{id}")
   public resultType<Emp> getEmpById(@PathVariable Integer id){
     resultType<Emp> res=new resultType<>();
     Emp data=empDao.selectById(id);
     try {
      res.code=data!=null?200:201;
      res.data=data;
      res.message=data!=null?"查询单条记录成功":"查询单条记录失败";
     } catch (Exception e) {
      System.out.println(e);
      res.code=500;
      res.error=e;
      res.message="服务器繁忙!";
     }
     return res;
   }

   @GetMapping("/detail")
   public resultType<Emp> _getEmpById(Integer id){
     resultType<Emp> res=new resultType<>();
     Emp data=empDao.selectById(id);
     try {
      res.code=data!=null?200:201;
      res.data=data;
      res.message=data!=null?"查询单条记录成功":"查询单条记录失败";
     } catch (Exception e) {
      System.out.println(e);
      res.code=500;
      res.error=e;
      res.message="服务器繁忙!";
     }
     return res;
   }
   


  //  分页条件查询
  @PostMapping("/page")
   public resultType<listSearchResult<Emp>> getSearchEmpList(@RequestBody listSearchCdt cdt){
    // System.out.println(cdt);
    resultType<listSearchResult<Emp>> res=new resultType<>();
     IPage<Emp> page=new Page<Emp>(cdt.page.page, cdt.page.size, true);
     QueryWrapper<Emp> filterOptions=
    //  new QueryWrapper<Emp>(cdt.filterOpions);
     new QueryWrapper<Emp>();
     filterOptions.like(cdt.filterOptions.name!=null,"emp_name",cdt.filterOptions.name).eq(cdt.filterOptions.age>0,"age", cdt.filterOptions.age).eq(cdt.filterOptions.salary>0, "salary", cdt.filterOptions.salary);
     IPage<Emp> ipage=empDao.selectPage(page,filterOptions);
     try {
        listSearchResult<Emp> data= new listSearchResult<Emp>();
        data.list=ipage.getRecords();
        data.total=ipage.getTotal();
        res.data=data;
        res.message="分页条件查询成功";
     } catch (Exception e) {
      res.code=500;
      res.error=e;
      res.message="服务器繁忙!";
     }
     return res;
   }
}

可以看到mybatis plus已经内置了基本的增删改查方法,不需要我们写什么sql,除非是非常复杂的查询
前端开发如何速成java,使用java开发网络接口

开发完后找到应用的入口类,点击run,启动项目
前端开发如何速成java,使用java开发网络接口

测试接口

前端开发如何速成java,使用java开发网络接口

项目源代码获取

码云仓库:
https://gitee.com/gitee_lw/springboot_test.git
项目介绍:包含token签发和校验,基本的增删改查接口,文件上传和下载接口
sql表我已经导出到 resources/static/tables目录下了,创建表的代码在createTable.md文件,需要的话可以使用这个代码创建表然后导入数据到你的数据库。
前端开发如何速成java,使用java开发网络接口文章来源地址https://www.toymoban.com/news/detail-460881.html

到了这里,关于前端开发如何速成java,使用java开发网络接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web前端开发项目走proxy代理后端接口,构建发布到生产等环境后,如何修改api接口

    在开发环境,因为本地站点和接口站点不是同一个域名,就产生了跨域问题,但是不可能让后端开发跨域端口或使用 jsonp ,所以,一般是让前端通过在 webpack.config.js 中配置 proxy 来走接口代理。 代码如下: 这样,就将本地域名代理到接口了。 构建成 dist目录 后,就不能修改

    2024年02月15日
    浏览(45)
  • 新手速成!如何使用ChatGPT成为你的导师

       最近我发现咱们的团队现在是人手ChatGPT,不光是我们团队,我整个行业的人都在用它解决生活跟工作中遇到的问题。可以看到的是大家也都是对它赞赏度很高 本文我将为大家介绍如何更加高效的使用ChatGPT提高工作效率,面向ChatGPT编程,做一个ChatGPT工程师 自从OpenAI发布

    2024年02月14日
    浏览(42)
  • java Spring Boot2.7写一个接口 提供图片预览 前端可以直接用接口地址当src为图片地址使用

    我们特别是在做小程序开发时 很多图片会比较大 而小程序本身就对自身大小要求非常高 所以 图片放在服务器上提供访问链接是一种非常好的选择 我想很多前端会误认为 直接将图片放在服务器上就可以了 但其实没那么简单 因为服务器其实也可以理解为一个电脑 你就想 你自

    2024年02月07日
    浏览(49)
  • 计算机网络4小时速成:如何根据IP地址和子网掩码计算自己的网段和ip可用范围?

    2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库 这oracle比sql安全,强大多了,所以你需要学

    2024年02月06日
    浏览(46)
  • 如何在Java中使用继承和多态?什么是Java中的接口,如何创建它们?

    在Java中,继承和多态是面向对象编程中最基本的概念之一。继承是指一个类可以从另一个类继承属性和方法。子类可以重写父类的方法,或者添加新的方法和属性。继承可以减少代码的重复,提高代码的可读性和可维护性。在Java中,使用“extends”可以实现继承。 下面

    2024年02月02日
    浏览(56)
  • 使用代码生成工具快速开发应用-结合后端Web API提供接口和前端页面快速生成,实现通用的业务编码规则管理

    在前面随笔《在Winform应用中增加通用的业务编码规则生成》,我介绍了基于Winform和WPF的一个通用的业务编码规则的管理功能,本篇随笔介绍基于后端Web API接口,实现快速的Vue3+ElementPlus前端界面的开发整合,同样是基于代码生成工具实现快速的前端代码的生成处理。 在前面

    2024年02月04日
    浏览(48)
  • IntelliJ IDEA 中使用Apifox IDEA 插件快速生成接口API (Java 开发告别写接口文档)

    Apifox IDEA 插件快速上手 | Apifox 帮助文档 特别注意: 1、idea版本必须大于2019.03才可以使用这个插件 2、修改设置不然分组校验必填项,apifox里面显示都是必填 添加图片注释,不超过 140 字(可选) Apifox IDEA 插件(Apifox Helper) 主要用于 IDEA 项目快速生成 API 文档,并同步到 A

    2024年03月24日
    浏览(66)
  • 网络安全引言(网络安全概述、计算机安全、OSI安全体系、网络安全模型)

    1.1 网络中的“安全”问题 信息安全经历两大变革: 从物理和管理方法 转变成 自动化工具保护信息安全 终端普遍使用 网络传输数据并保证数据安全 网络中的“安全”问题 监听 截获 篡改 假冒 假冒网点 Email截取 否认 1.2 网络安全定义 网络安全是一个跨多门学科的综合性科

    2024年02月19日
    浏览(53)
  • Java开发的审批流系统,前端使用vue,支持常态化工作审批流程

    springboot+vue+activiti集成了activiti在线编辑器,快速开发平台,可插拔工作流服务。 本项目拥有用户管理,部门管理,代码生成,系统监管,报表,大屏展示,业务审批等功能。功能太强大,只能粗矿的介绍,所见即所得,体验一下吧。 进入流程模型菜单,创建流程模型,这里

    2024年01月19日
    浏览(49)
  • 如何在企业微信开发者中心使用内网穿透工具回调本地接口服务

    企业微信开发者在应用的开发测试阶段,应用服务通常是部署在开发环境,在有数据回调的开发场景下,企业微信的回调数据无法直接请求到开发环境的服务。 内网穿透工具可以帮助开发者将应用开发调试过程中的回调请求,穿透到本地的开发环境。 Cpolar是一种安全的内网

    2024年01月16日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包