项目结构如下:
说明:
config:此目录是swagger配置的扫描路径之类的信息。
entity:此目录是实体类的存放地址。
mapper:此目录存放连接sql层的最后一步。
service:此目录主要是进行业务处理。
web:显而易见,入口层。
以此类推如下:
application.properties:数据库配置层。
mybatis.properties:mybatis配置扫描层。
Swagger内容如下展示:
@Configuration
@EnableSwagger2
@ComponentScan("com.demo.web")
public class Swagger {
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.demo.web"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
ApiInfo apiInfo = new ApiInfoBuilder().title("Spring Boot 整合 swagger ui")
.description("Spring Boot 整合 swagger ui 和spring-data-JPA")
.version("1.0")
.build();
return apiInfo;
}
}
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.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.demo</groupId>
<artifactId>springboot_mybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_mybatis</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-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</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>
</dependency>
<dependency>
<groupId>com.aLibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.19</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-core</artifactId>
<version>4.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.4.01</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
</dependency>
</dependencies>
<build>
<!--配置文件读取路径-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.properties文件:
#数据源配置
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/*****?useUnicode=true&characterEncoding=utf8
spring.datasource.username = ****
spring.datasource.password = ****
mybatis.properties文件:
#mybatis 配置
mybatis.config-locations=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:com/demo/mapper/xml/*.xml
mybatis.type-aliases-package=com.demo
启动类如下:
@SpringBootApplication
@MapperScan(value = "com.demo.mapper") //此处是扫描mapper的路径
@PropertySource({"classpath:mybatis.properties",
"classpath:application.properties"})// 读取.properties 文件路径
public class SpringbootMybatisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootMybatisApplication.class, args);
}
}
实体类(MFnnclChange)如下:
@ApiModel("实体类")
@Data
public class MFnnclChange implements Serializable {
@ApiModelProperty("主键")
private Long id;
@JsonFormat(pattern="yyyy-MM-dd")
private Date applyYmd;
private Long newBrnchCd;
}
controller层代码(只是一个简单的全查操作):
@RestController
@Api("数据一览查询")
@RequestMapping("/mfnnclChange")
public class MFnnclChangeController {
@Autowired
private MFnnclChangeService mFnnclChangeService;
@ApiOperation("获取数据一览")
@GetMapping(value = "/list")
public List<MFnnclChange> getMcorpList(){
return mFnnclChangeService.findAll();
}
}
service层:
@Service
public interface MFnnclChangeService {
//数据一览查询
public List<MFnnclChange> findAll();
}
impl层:
@Service
public class MFnnclChangeImpl implements MFnnclChangeService{
@Autowired
private MFnnclChangeMapper mFnnclChangeMapper;
//一览查询
@Override
public List<MFnnclChange> findAll(){
return mFnnclChangeMapper.findAll();
}
}
mapper层:
public interface MFnnclChangeMapper {
//一览查询
List<MFnnclChange> findAll();
}
xml代码:
<?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.demo.mapper.MFnnclChangeMapper">
<resultMap id="MFnnclChangeResultMap" type="com.demo.entity.MFnnclChange">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="apply_ymd" jdbcType="DATE" property="applyYmd" />
<result column="new_brnch_cd" jdbcType="BIGINT" property="newBrnchCd"/>
</resultMap>
<sql id="MFnnclChange_Column_List">
id, apply_ymd, new_brnch_cd
</sql>
<select id="findAll" parameterType="java.util.List" resultMap="MFnnclChangeResultMap">
SELECT <include refid="MFnnclChange_Column_List"/> FROM m_fnncl_change
</select>
</mapper>
最终启动后端程序,我们在页面访问
http://localhost:8080/swagger-ui.html
可得到以下画面:
点击其中的进行查询可得到以下结果集:
至此,此项目基础搭建和运行完了…