zoukankan      html  css  js  c++  java
  • springboot基本框架搭建零基础教程,对新手极为友好!

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

    打开Idea软件。

    点击New Project创建一个新的项目
    选择Spring Initializr创建spring boot项目,其中需要选择jdk(Java Development ToolKit,是Java语言开发工具包)的版本,其余的选项默认。
    点击next。

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

    例如,图示中,com.example,为example示例的域名,demo为示范项目名称。
    由于我的jdk版本为1.8,所以java version(java版本)选择8。其他的默认即可。
    点击next

    选择依赖。

    • springboot版本选择2.4.4
    • 选择Developer Tools下的Spring Boot DevTools
    • 选择Web下的Spring Web
    • 选择 SQL下的MyBatis Framework和MySQL Driver
    • 点击next

    选择项目存储目录,点击Finish。

    简单的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)

    (三)、创建对应的代码

    在实际开发者,controller是进行前后端交互的,后端给前端提供相对应的接口,controller层调用service层,service调用dao层对数据库进行查询,把数据储存到bean包下的user对象中。例如:
    UserController——>UserService——>UserServiceImpl实现UserService中的方法——>UserMapper查询数据
    最后将查询到的数据,new一个User来存放数据。

    对应的代码如下:

    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” 以运行项目。

    运行成功后,打开浏览器,输入http://localhost:8888/User/query 其中
    http为协议,
    localhost为本地ip,
    8888为运行端口,
    User为controller层的@RequestMapping括号后的字符串,就相当于根目录一样,
    query为controller层的@GetMapping括号后的字符串,相当于根目录下的query方法

    最后

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

  • 相关阅读:
    C#模拟百度登录并到指定网站评论回帖(一)
    4张图看明白用户、权限和租户的关系
    我的微服务之路
    IT部门不应该是一个后勤部门
    一个值只有0和1的字段,到底要不要建索引?
    论程序员的自我修养
    RBAC权限管理系统数据模型
    有史以来功能最全,使用最简单的excel导入/导出工具
    一个完全平均分布的固定长度随机数发生器
    基于WCF的RESTFul WebAPI如何对传输内容实现压缩
  • 原文地址:https://www.cnblogs.com/lwh1019/p/14619626.html
Copyright © 2011-2022 走看看