本例细化到每一步骤的操作。
网上不太好找详细的mybatis整合postgresql数据库搭建springboot2框架web工程的教程。所以以下我就一步一步详解,写一个细化的傻瓜教程。因为对于初学者来说,教程不够细化,就没有什么可复用性。
以下,照着一步一步操作,可以搭建出来一个web工程。
另外,写教程不附赠源码,就是耍流氓,最后有git地址。
一、开发环境:
开发IDE:IntelliJ IDEA。
JDK:jdk1.8
框架:springboot2+mybatis
数据库:postgresql
数据:数据就采用之前上传到postgresql库中v6_time_cnty_pts_utf_wgs84表。
二、工程搭建
1. Create New Project
打开IDEA,Create New Project 。或者已经是打开了一个工程的页面,File——New——Project。总之,新建工程。
- 初始化Spring
如图,选择Spring Initializr;
Project SDK选择JDK(JAVA语言的软件开发包);
保证网络畅通,Next;
- 工程命名
给自己的工程起个名,Group一般以com.开头,有点像域名,Artifact是工程的名称,两者都以英文命名,且不能有大写字母,这是工程规范。
Type,默认的就是Maven Project,Maven工程管理jar包很便捷。
Language是Java,不用说了。
Packaging是jar,打包编译类型肯定是jar包了。
Java Version是8,JDK的版本是1.8。
Version,版本号是0.0.1-SNAPSHOT,快照版。
Name是根据Artifact生成的,两个一样。
Description是工程描述,可以描述一下。
Package是Group.Artifact,都是自动生成的,,不用管。
这步骤,填下Group和Artifact,next就可以。
- 配置maven依赖
这个步骤是在创建工程的时候,就把一些maven依赖(Dependencies)配置上。
如图所示,点选Developer Tools,勾选Spring Boot DevTools、Lombok、Spring Configuration Processor。
依次把Web中的Spring Web Starter;Template Engines中的Thymeleaf;SQL中的JDBC API、Mybatis Framwork、PostgreSQL Driver都勾选上,点击next。
稍微介绍下这些依赖都是干什么的。
Spring Boot DevTools:热部署,修改内容,工程自动重启。
Lombok:打日志、注解工具,调试代码用。
Spring Configuration Processor:引入配置的工具。
这三个都是方便写代码的。
Spring Web Starter:web工程启动工具。
Thymeleaf:整合前端用的。
JDBC API:连数据库的引擎。
Mybatis Framwork:Mybatis框架。
PostgreSQL Driver:pg库引擎。
先加这些依赖,不够用的话,以后在配置文件中,也非常好加。
- 保存工程
Project name就是Artifact的名称,这个不用改,给工程找个地方放,Project location放工程的文件夹,确保这个文件夹名跟Project name一样。点击finish。
- 静待下载依赖
保持网络畅通,下载依赖还需要几分钟,看右下角的进度条就可以了。
当提示,Plugins Suggestion,选择Enable plugins。
当提示,Maven projects need to be imported,选择Enable Auto-Import,如果之前已经配置了maven的自动导入,这步就不会提示了。
三、完善工程结构
创建完的工程长这个样子。
我们按照规范给它完善一下。
需要添加controller层、dao层、model层、service层(内有Impl层)。
在com.history.gismap上右键——new——package,依次新建package,注意层级关系。
Package建立完,长这样。
注意层级关系,impl是service下的package,package的命名都需要小写。
点击小齿轮,取消勾选Compack Middle Packages,勾选上的话,会把空的package给折叠了。
创建完package之后,在各个层(package)上,右键——new——Java Class,新建类。
创建完长这样,接口(interface)和类(class)命名要符合驼峰规则。
其中MapService是接口(interface),MapServiceImpl是它的实现类(class)。
MapService长这样。
package com.history.gismap.service;
public interface MapService {
}
MapServiceImpl长这样,继承(implements)了Map Service。
package com.history.gismap.service.impl; import com.history.gismap.service.MapService; public class MapServiceImpl implements MapService { }
四、完善依赖
把pom.xml打开,缺依赖加依赖,缺配置加配置。
主要改了properties,标注一下编码为utf8。
和dependencies,把缺的一些依赖加上了。
把postgresql的版本号<version>42.2.2</version>加上,注释掉<!--<scope>runtime</scope>-->,因为我不只是运行的时候用这个jar包,我测试的时候也要用。
加上lombok的版本号<version>1.18.8</version>。
加上apache的commons-lang3的jar包,解析json的包,分页插件pagehelper-spring-boot-starter,数据库连接池druid-spring-boot-starter、解析几何geometry对象用的jts包。
现在pom文件长这样,文件路径:D:\gismap\java\gismap\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 http://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.1.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.history</groupId> <artifactId>gismap</artifactId> <version>0.0.1-SNAPSHOT</version> <name>gismap</name> <description>Demo project for Spring Boot</description> <properties> <!-- 标注一下编码为utf8,jdk版本为1.8--> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <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>or