已经第二次搭建spring工程了,之前也写过一篇博文,写的搭建过程,这次比上次要快多了,1天就搭建好了,这件事说明,孰能生巧哈哈哈,你试两次就知道怎么搞了。
一、首先有个IDEA
创建步骤见下面的截图,基本是直接下一步
二、通过mybatis创建dao层、entity文件、mapper文件
详情请见https://blog.csdn.net/giiiig/article/details/112576078
三、编写service层文件
package com.beauty.time.service;
import com.beauty.time.dao.ItemMapper;
import com.beauty.time.entity.Item;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class ItemService {
static final Logger logger = LoggerFactory.getLogger(TimeManageService.class);
@Autowired
private ItemMapper itemMapper;
public int addItem(Item item){
System.out.println("开始插入数据");
return itemMapper.insert(item);
}
}
四、编写controller文件
package com.beauty.time.controller;
import com.beauty.time.entity.Item;
import com.beauty.time.service.ItemService;
import javax.annotation.Resource;
import javax.validation.Valid;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
@ResponseBody
//配置相关接口
@RequestMapping(value = "/item")
public class ItemController {
@Resource
private ItemService itemService;
@PostMapping(value = "/add")
public int addItem(@Valid @RequestBody Item itemReq){
return itemService.addItem(itemReq);
}
}
五、添加application.yml文件,链接数据库,并配置数据库地址,数据库映射文件和实体类
mybatis的配置注意顶格写,若不配置mybatis会报错报如下错误:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.beauty.time.dao.ItemMapper.insert
记得添加mysql的数据库驱动依赖哦,就是配置pom
pom.xml文件配置
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
application.yml文件配置
#数据库连接:注意要加上时区
server:
port: 8082
spring:
datasource:
url: jdbc:mysql://xxx.aliyuncs.com:3306/ztest?serverTimezone=UTC
username: xxx
password: yyy!
driver-class-name: com.mysql.jdbc.Driver
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: com.beauty.time.dao
五、注意
1)在启动类上加这个注释@MapperScan("com.beauty.time.dao"),不然找不mapper文件,报错信息如下:
Consider defining a bean of type 'com.beauty.time.dao.ItemMapper' in your configuration.意思ItemMapper未注册为bean,但
ItemMapper文件已添加@Repository注释,其实启动类也要加相应的注释
package com.beauty.time;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.beauty.time.dao")
public class TimeApplication {
public static void main(String[] args) {
SpringApplication.run(TimeApplication.class, args);
}
}
2)dao中的mapper文件加@Repository注释
六、启动该工程
七、访问接口
查看数据库已添加了该条数据,成功!
七、附pom文件
<?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>
<groupId>com.beauty</groupId>
<artifactId>time</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>time</name>
<description>Time project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</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>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<!-- 加载mybatis整合springboot-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/mybatis-generator/generatorConfig.xml
</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<configuration>
<mainClass>com.beauty.time.TimeApplication</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>