正题
本项目使用的环境:
开发工具:Intellij IDEA 2017.1.3
springboot: 2.2.6
jdk:1.8.0_74
maven:3.3.9
alibaba Druid 数据库连接池:1.1.10
开始搭建:
第一步(File—New—Project)然后选择Spring Initializr
注意:(如果没有Spring Initializr的可以在idea中安装、安装方法:Settings–Plugins然后搜索)
添加基础的依赖:
依赖文件:
<?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.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>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-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</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.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
<scope>provided</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>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
项目结构:
提示:controller、dto、mapper、service、impl都是拉取下来之后,自己新建的。(没什么特别原因,各人喜欢这样建而已、哈哈…)
项目启动类:
package com.example.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@MapperScan(basePackages ="com.example.demo.mapper")//将项目中对应的mapper类的路径加进来就可以了
@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
注意:@MapperScan(basePackages =“com.winter.mapper”)、@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
这个注解非常的关键,这个对应了项目中mapper(dao)所对应的包路径,如果这里不加,后面启动的时候反正你会觉得很坑,毕竟我就是这样被自己坑了的!!
配置:
可以根据个人使用习惯选择使用properties或者yml文件,我使用的是yml配置文件,所以把原本application.properties删除,创建一个application.yml文件(这也没有什么原因、一句话:“因为爱,所以爱”,哈哈……)
在resource文件夹下创建application.yml
server:
port: 8888
spring:
datasource:
druid:
url: jdbc:mysql://127.0.0.1:3306/data?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
mybatis:
mapper-locations: classpath:mapping/*.xml #注意:一定要对应mapper映射xml文件的所在路径
type-aliases-package: com.example.demo.dto # 注意:对应实体类的路径
这里需要说明一下、有坑的地方。
一定要遵从yml的格式来,server、spring、mybatis这些包括下面的层级不要瞎动,不然自己就成了萝卜了。冒号:后面一定一定要有空格,不然启动项目的时候,一首凉凉慢慢听把!
创建数据库和数据表
CREATE TABLE `fc_site` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`site_selection_code` varchar(64) NOT NULL COMMENT '',
`site_status` int(2) DEFAULT '1' COMMENT '',
`selection_auth_type` int(2) DEFAULT '2' COMMENT '',
) ENGINE=InnoDB AUTO_INCREMENT=404042 DEFAULT CHARSET=utf8;
创建实体类:
package com.example.demo.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class Site {
private Long id;
private String siteSelectionCode;
private Integer siteStatus;
private Integer selectionAuthType;
}
@Data注解说明一下,纯属个人太懒。懒得写get,set方法所以用了这个注解,个人觉得其实还是挺好的!
特别说明下:
这个注解有2个地方需要注意:
1、需要引入注解:(放在pom.xml中,上面我已经引入了)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
<scope>provided</scope>
</dependency>
2、我用的是idea,如果没有安装lombok插件,需要安装插件,安装方法如下图:
File—Settings打开如下窗口,最后OK。
创建controller
package com.example.demo.controller;
import com.example.demo.dto.Site;
import com.example.demo.service.SiteService;
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.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping(value = "/site")
public class SiteController {
@Autowired
private SiteService siteService;
@RequestMapping(value = "/findSiteList", produces = {"application/json;charset=UTF-8"},method = RequestMethod.GET)
@ResponseBody
public List<Site> findAllSite() {
Map<String, Object> paramsMap = new HashMap<>();
List<Site> siteList = siteService.findAllSiteList(paramsMap);
return siteList;
}
}
提示
//method = RequestMethod.GET 这里标明为get请求,没有为什么,我喜欢这样(你打我呀!!,其实就是我懒,想启动成功后直接通过浏览器访问)
创建Service
package com.example.demo.service;
import com.example.demo.dto.Site;
import java.util.List;
import java.util.Map;
public interface SiteService {
/**
* 获取所有数据
* @param paramMap
* @return
*/
List<Site> findAllSiteList(Map<String, Object> paramMap);
}
创建实现接口的类 SiteServiceImp
package com.example.demo.service.impl;
import com.example.demo.dto.Site;
import com.example.demo.mapper.SiteMapper;
import com.example.demo.service.SiteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
import java.util.Map;
@Service
@Transactional
public class SiteServiceImp implements SiteService {
@Autowired
private SiteMapper siteMapper;
/**
* 查询所有选址信息
* @param paramMap
* @return
*/
@Override
public List<Site> findAllSiteList(Map<String, Object> paramMap) {
return this.siteMapper.findAllSiteList(paramMap);
}
}
提示:
@Service 这个注解必须要,否则项目启动会报错。
@Transactional 说明一下,这个是手贱惯了,写上去的。有缘人可以自己百度百度,!一句话总结:就是开启事务时的注解
Mapper (SiteMapper)
/*
* 文 件 名 : SiteMapper.java
*/
package com.example.demo.mapper;
import com.example.demo.dto.Site;
import java.util.List;
import java.util.Map;
public interface SiteMapper {
/**
* 查询所有
* @param paramMap
* @return
*/
List<Site> findAllSiteList(Map<String, Object> paramMap);
}
创建实现查询的xml文件(SiteMapper.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.example.demo.mapper.SiteMapper">
<resultMap id="BaseResultMap" type="com.example.demo.dto.Site">
<id column="id" property="id" jdbcType="BIGINT" />
<result column="site_selection_code" property="siteSelectionCode" jdbcType="VARCHAR" />
<result column="site_status" property="siteStatus" jdbcType="INTEGER" />
<result column="selection_auth_type" property="selectionAuthType" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List">
id ,
site_selection_code ,
site_status,
community_id,
selection_auth_type
</sql>
<select id="findAllSiteList" resultMap="BaseResultMap" parameterType="java.util.Map">
select
<include refid="Base_Column_List" />
from fc_site
where 1 = 1
order by create_tm desc
limit 0,2;
</select>
</mapper>
推荐
mybatis常用jdbcType数据类型 对应java类型
测试
我反正是成功了。 ^ _ ^
查询数据
请求地址:http://localhost:8888/site/findSiteList 这里是我自己的地址哦!
没办法、因为我懒;所以直接用浏览器get请求了一下。
最后说明
本篇博文纯属个人笔记、我也是第一次自己搭建(同时;也不是一名java程序猿、大神别骂)。有很多很菜的地方、当然在此过程中自己也教了不少智商税,踩了很多坑。所以写了这个博文当作笔记、能帮助到别人那是最好了。
如有不足之处、烦请大神指点迷津!定当感激不尽。。。