springboot基本框架搭建零基础教程,对新手极为友好!

杨怀
• 阅读 4134

Idea创建spring boot项目(使用MySQL数据库)

打开Idea软件。

点击New Project创建一个新的项目
选择Spring Initializr创建spring boot项目,其中需要选择jdk(Java Development ToolKit,是Java语言开发工具包)的版本,其余的选项默认。
点击next。
springboot基本框架搭建零基础教程,对新手极为友好!

点击next会出现这个界面,Group为项目域,Artifact为项目名。

例如,图示中,com.example,为example示例的域名,demo为示范项目名称。
由于我的jdk版本为1.8,所以java version(java版本)选择8。其他的默认即可。
点击next
springboot基本框架搭建零基础教程,对新手极为友好!

选择依赖。

  • springboot版本选择2.4.4
  • 选择Developer Tools下的Spring Boot DevTools
  • 选择Web下的Spring Web
  • 选择 SQL下的MyBatis Framework和MySQL Driver
  • 点击next
    springboot基本框架搭建零基础教程,对新手极为友好!

选择项目存储目录,点击Finish。
springboot基本框架搭建零基础教程,对新手极为友好!

简单的springboot项目(基于SSM框架:Spring+SpringMVC+MyBatis)

配置application.properties

//MySQL驱动
spring.datasource.driverClassName=com.mysql.jdbc.Driver
//MySQL地址,其中需要填写ip地址,如若是本地则填写localhost,如若为服务器,则填写服务器的ip地址。
//MySQL端口为3306
//填写数据库名称。
spring.datasource.url=jdbc:mysql://ip地址:3306/数据库名?characterEncoding=utf8&serverTimezone=UTC&rewriteBatchedStatements=true
//数据库的登录用户名
spring.datasource.username=root
//登录密码
spring.datasource.password=root
//springboot运行端口为8888,默认一般为8080,可以自己选择。
server.port=8888

创建包名

在项目名称下新建四个包。

  • bean 放实体类,对应数据库中的关键字段
  • dao 放mapper文件,数据访问层,与数据库进行交互。
  • service 业务层,实现业务逻辑功能。其下还有一个Impl包,实现service的具体实现类。
  • controller 业务控制层,前端所需要的接口就在这一层实现。(为了便于理解,我们在新建web包下在新建一个包controller)
    springboot基本框架搭建零基础教程,对新手极为友好!

(三)、创建对应的代码

在实际开发者,controller是进行前后端交互的,后端给前端提供相对应的接口,controller层调用service层,service调用dao层对数据库进行查询,把数据储存到bean包下的user对象中。例如:
UserController——>UserService——>UserServiceImpl实现UserService中的方法——>UserMapper查询数据
最后将查询到的数据,new一个User来存放数据。
springboot基本框架搭建零基础教程,对新手极为友好!

对应的代码如下:

bean

package com.example.demo.bean;
/**
 * @author tth
 * @date 2021/4/4
 */

//对应数据库中的id、name、age、gender。
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String gender;

    public Long getId() {
        return id;
    }

    public void setId(Long 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;
    }
}

dao

package com.example.demo.dao;

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

import java.util.List;


/**
 * @author tth
 * @date 2021/4/4
 */
//使用注解方式进行数据库数据的查询,注意看是否引入org.apache.ibatis.annotations.Select包
public interface UserMapper {
    @Select("select  * from test_user")
    List<User> query();
}

service

package com.example.demo.service;

import com.example.demo.bean.User;

import java.util.List;

/**
 * @author tth
 * @date 2021/4/4
 */


public interface UserService {
    //业务方法声明
    List<User> query();
}

serviceImpl

package com.example.demo.service.Impl;

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

import javax.annotation.Resource;
import java.util.List;
/**
 * @author tth
 * @date 2021/4/4
 */

//UserService的具体实现类,记得加上@Service注解,否则会报错。
@Service
public class UserServiceImpl implements UserService {
    //调用UserMapper查询数据
    //@Resource或者@Autowired注解都可
    @Resource
    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> query() {
        //调用UserMapper中的query方法,返回一个List,类型为User,为了代码简洁,就不需要定义中间变量。
        //如:List<User> user = userMapper.query();
        //    return user;
        return userMapper.query();
    }
}

controller

package com.example.demo.web.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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
/**
 * @author tth
 * @date 2021/4/4
 */
@RestController
@RequestMapping("/User")
public class UserController {
    @Autowired
    private UserService userService;
    //表明这是一个get类型的请求,其余的还有post、delete等。
    @GetMapping("query")
    public List<User> query(){
        return userService.query();
    }
}

注意!注意!注意!
我们还需要在DemoApplication加上一个注解@MapperScan,否则项目还是会报错。或者使用一个mybatis注解类。

package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//这个注解非常重要,需要让springboot知道你的mapper文件存放在哪个目录下
@MapperScan("com.example.demo.dao")
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

项目运行

右击DemoApplication文件,点击Run “DemoApplication” 以运行项目。
springboot基本框架搭建零基础教程,对新手极为友好!

运行成功后,打开浏览器,输入http://localhost:8888/User/query 其中
http为协议,
localhost为本地ip,
8888为运行端口,
User为controller层的@RequestMapping括号后的字符串,就相当于根目录一样,
query为controller层的@GetMapping括号后的字符串,相当于根目录下的query方法
springboot基本框架搭建零基础教程,对新手极为友好!

最后

在文章的最后作者为大家整理了很多资料!包括java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书等等!
有需要的朋友欢迎关注公众号:前程有光,领取

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这