1.创建maven项目
不选择直接点击next
设置项目名称和存放位置,还可修改groupid
对maven进行配置,选择自己的apache路径
2.设置pom.xml文件
导入相关的包,外部包导入可参考链接Maven Repository: Search/Browse/Explore (mvnrepository.com)
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.wnhz</groupId>
<artifactId>springboot-hello</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.druid.version>1.2.18</project.druid.version>
<project.mybatis.version>2.2.2</project.mybatis.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.13</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${project.druid.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${project.mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3. 项目结构,创建层和yml文件
4.配置yml文件
application.yml文件,active:激活环境
-
开发环境 dev
-
测试环境 test
-
生产环境 prod
spring:
profiles:
active: dev
application-web.yml文件,设置端口号,数据库链接,以及账号密码,对mybatis进行配置,创建日志,设置别名以及所对应的xml文件位置
server:
port: 9092
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/mydata5?useUnicode=true&&characterEncoding=utf-8&serverTimezone=UTC
username: root
password: 123456
mybatis:
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #日志信息
# 别名
type-aliases-package: com.wnhz.entity
mapper-locations: classpath:mapper/*.xml
5.创建App进行测试
exclude:排除自动装载(为了测试结果看起来简洁一些),在正式运行程序时需要去除
package com.wnhz;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication(exclude = {
DruidDataSourceAutoConfigure.class,
DataSourceAutoConfiguration.class
})
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class);
}
}
运行结果如下所示:能够显示出自己配置的端口号为9092和激活的环境为dev
6.创建Animal类
自行设计一个数据库,并创建Animal类
package com.wnhz.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Animal implements Serializable {
private int id;
private String name;
private String createtime;
private String updatetime;
private String creater;
}
7.创建dao层接口并实现
创建AnimalMappert,创建一个查询全部信息的接口
package com.wnhz.dao;
import com.wnhz.entity.Animal;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface AnimalMapper {
public List<Animal> findAll();
}
实现AnimalMapper接口,在mapper中创建AnimalMapper.xml文件
namespace:对应的文件路径
id:对应的接口名称
resultType:输出的结果类型
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wnhz.dao.AnimalMapper">
<select id="findAll" resultType="animal">
select * from animal
</select>
</mapper>
8.创建service层接口并实现
创建AnimalService,创建一个查询全部信息的接口
package com.wnhz.service;
import com.wnhz.entity.Animal;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public interface AnimalService {
public List<Animal> findAll();
}
在service文件夹下创建impl文件夹,创建AnimalServiceImpl,对service层的接口进行实现
package com.wnhz.service.impl;
import com.wnhz.dao.AnimalMapper;
import com.wnhz.entity.Animal;
import com.wnhz.service.AnimalService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class AnimalServiceImpl implements AnimalService {
@Autowired
AnimalMapper animalMapper;
@Override
public List<Animal> findAll() {
return animalMapper.findAll();
}
}
alt+回车,创建service的测试文件
package com.wnhz.service.impl;
import com.wnhz.dao.AnimalMapper;
import com.wnhz.entity.Animal;
import com.wnhz.service.AnimalService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class AnimalServiceImpl implements AnimalService {
@Autowired
AnimalMapper animalMapper;
@Override
public List<Animal> findAll() {
return animalMapper.findAll();
}
}
测试结果如下
9.实现controller层
创建AnimalController
package com.wnhz.controller;
import com.wnhz.entity.Animal;
import com.wnhz.service.AnimalService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
@RequestMapping
public class AnimalController {
@Autowired
AnimalService animalService;
@ResponseBody
@RequestMapping("/findall")
public List<Animal> findAll(){
List<Animal> animals =animalService.findAll();
return animals;
}
}
测试
点击RequestMapping里的小地球,选择第二个选项
选择get,直至显示全部路径
先将App开启,然后运行上图后的的路径
测试结果如下所示: