Idea+springboot+mybatis+maven搭建web项目

首先.我们今天来学习的是idea开发工具搭建的springboot+mybatis+maven实现web项目的搭建…祝福各位大家永无bug!!!
版本注意:(jdk1.8 非强制 )(spring-boot-starter-parent 的依赖版本是2.2.1.RELEASE -低版本可能无法默认访问index 需要配置才可以 比如1.5.4版本)

环境-版本

jdk 1.8.0_152
maven 3.5.2
mysql 5.5.40

File 选择 Project

选择Spring Initializr。选择后点击Next
这里写图片描述
把项目信息写好,点击Next;
在这里插入图片描述

  • 选择web勾选设置
  • 选择template勾选设置
  • 选择SQL勾选设置
    在这里插入图片描述
    选择finish
    在这里插入图片描述

配置maven

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
目录如下
在这里插入图片描述
现在我们点击后下角的提示语句
等待Maven自动加载完成,最初的项目结构如下图。

在这里插入图片描述

创建包以及类resources目录下,static文件夹是放置各种静态资源,如css,js,img等文件的。templates文件夹则是默认放置网页的。当然也可以更改。

在这里插入图片描述
现在我们开始编写pom.xml配置文件
需要加入的代码如下:


        <!-- 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.5</version>
        </dependency>
        <!-- alibaba的druid数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.9</version>
        </dependency>
 <!--自动生成代码-->
            <plugin>
                <!--Generator插件依赖-->
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <!--MyBaits-generator的配置文件generatorConfig.xml的位置-->
                    <configurationFile>src/test/resources/config/generatorConfig.xml</configurationFile>
                    <!--是否覆盖同名文件(只是针对XML文件,java文件生成类似*.java.1*.java.2形式的文件)-->
                    <overwrite>true</overwrite>
                    <!--是否将生成过程输出至控制台-->
                    <verbose>true</verbose>
                </configuration>
            </plugin>

		  <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>

在这里插入图片描述

pom.xml完整代码::

<?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.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>springboot-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


        <!-- 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.5</version>
        </dependency>
        <!-- alibaba的druid数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.9</version>
        </dependency>


    </dependencies>

    <build>
        <plugins>

            <!--自动生成代码-->
            <plugin>
                <!--Generator插件依赖-->
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <!--MyBaits-generator的配置文件generatorConfig.xml的位置-->
                    <configurationFile>src/test/resources/config/generatorConfig.xml</configurationFile>
                    <!--是否覆盖同名文件(只是针对XML文件,java文件生成类似*.java.1*.java.2形式的文件)-->
                    <overwrite>true</overwrite>
                    <!--是否将生成过程输出至控制台-->
                    <verbose>true</verbose>
                </configuration>
            </plugin>

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

        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

</project>

application.properties代码如下:
在这里插入图片描述

#配置端口
server.port=8080

#外网地址
spring.datasource.url=jdbc:mysql://localhost/nn?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.initialSize=20
spring.datasource.minIdle=20
spring.datasource.maxActive=200
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20


#配置这句话,控制台输出sql语句
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 
mybatis.mapper-locations= classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.springbootdemo.model

Index.html代码如下:
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <br>
    <div style="color: red">好久不见--你最近还好吗?</div>
</body>
</html>

启动项目
输入http://localhost:8080/
访问项目–表示访问成功
在这里插入图片描述

开发项目

现在项目就创建完成.想对接数据库操作 如下(给初学者):
1.数据库创建表
创建sql语句

CREATE DATABASE /*!32312 IF NOT EXISTS*/`nn` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

USE `nn`;

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `pass_word` varchar(50) DEFAULT NULL,
  `phone` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

2.首先完成这个链接的 插件安装 - 并且执行生成dao层 mapper.xml文件和model的文件
IDEA集成MyBatis Generator 插件 详解

UserController代码如下:

package com.example.springbootdemo.controller;

import com.example.springbootdemo.model.User;
import com.example.springbootdemo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Controller
@RequestMapping(value = "/user")
public class UserController {
    @Autowired
    private UserService userService;

    @ResponseBody
    @PostMapping("/add")
    public int addUser(User user){
        return userService.addUser(user);
    }

    @ResponseBody
    @GetMapping("/all")
    public Object findAllUser(
            @RequestParam(name = "pageNum", required = false, defaultValue = "1")
                    int pageNum,
            @RequestParam(name = "pageSize", required = false, defaultValue = "10")
                    int pageSize){
        return userService.findAllUser(pageNum,pageSize);
    }
}



UserMapper添加代码如下:

      List<User> selectUsers();

UserService代码如下:

package com.example.springbootdemo.service;

import com.example.springbootdemo.model.User;
import com.github.pagehelper.PageInfo;

public interface UserService {

    int addUser(User user);

    PageInfo<User> findAllUser(int pageNum, int pageSize);
}


UserServiceImpl代码如下:


package com.example.springbootdemo.service.impl;

import com.example.springbootdemo.mapper.UserMapper;
import com.example.springbootdemo.model.User;
import com.example.springbootdemo.service.UserService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;

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

@Service(value = "userService")
public class UserServiceImpl implements UserService {
    @Resource
    private UserMapper userMapper;//这里会报错,但是并不会影响

    @Override
    public int addUser(User user) {
        int insert = userMapper.insert(user);
        return insert;

    }

    /*
     * 这个方法中用到了我们开头配置依赖的分页插件pagehelper
     * 很简单,只需要在service层传入参数,然后将参数传递给一个插件的一个静态方法即可;
     * pageNum 开始页数
     * pageSize 每页显示的数据条数
     * */
    @Override
    public PageInfo<User> findAllUser(int pageNum, int pageSize) {
        //将参数传给这个方法就可以实现物理分页了,非常简单。
        PageHelper.startPage(pageNum, pageSize);
        List<User> userDomains = userMapper.selectUsers();
        PageInfo result = new PageInfo(userDomains);
        return result;
    }
}



UserDomainMapper.xml添加如下代码

<select id="selectUsers" resultType="com.example.springbootdemo.model.User">
    SELECT
     *
    FROM
        user
  </select>

修改主启动文件

@MapperScan("com.example.springbootdemo.mapper")

在这里插入图片描述

打开postman 填入路径: localhost:8080/user/add
填入参数
(postman是一个测试接口的工具)
测试接口是否成功
在这里插入图片描述
看到刚才插入的数据已经到了数据库.表示成功

(非必看)
在进行这个修改的时候.会发现.在idea里面sql语句背景颜色竟然变成了超级难看的屎黄色,把这两项勾选去掉
这里写图片描述

成功搞定.springboot

发布了182 篇原创文章 · 获赞 35 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_39505065/article/details/81568056