目录
- 环境-版本
- 源码
- 配置maven
- 开发项目
首先.我们今天来学习的是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
源码
链接:https://pan.baidu.com/s/1M7hfijmmN7K16jUW43UD5g
提取码:5dla
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