1. 程式人生 > >Idea+SpringBoot+Mybtis+Mysql+Gradle+Swagger2

Idea+SpringBoot+Mybtis+Mysql+Gradle+Swagger2

專案說明:

1.開發工具: Idea(2017.1.5),jdk1.8

使用框架,資料庫,jar庫依賴:SpringBoot+Mybtis, Mysql, Gradle4.0

後臺測試使用:Swagger2

2. 本專案模仿的需求: 商品的動態查詢

3,程式碼展示和說明:

(1)掃描dao層需要在專案入口:加上註解掃描@MapperScan("so.sao.dao"),或者在自己的dao裡面的介面上面加@Mapper

掃描service層需要在是實現類加@service

      (2)下面寫的配置的.xml檔案,需要和資料庫連線等資訊一起在resources/application.properties 加自己的配置

如: mybatis.mapperLocations=classpath:mapper/*.xml

3.1 domain層 : 建立實體物件類:Commodity  and  CommType, 根據需求列名自己定義幾個列(欄位)。

Page(效驗自己的分頁引數)

Page實體類如下參考!

/**

 * 當前頁數
 */
private int pageNumber;

/**
 * 頁面大小
 */
private int pageSize;

public Page() {
}

public Page(int pageNumber, int pageSize) {
    this.pageNumber 
= pageNumber; this.pageSize = pageSize; }
3.2 web層(Controller)
CommunityController(商品的控制層):商品的動態查詢
/**
 * Created by XuPengFei on 2017/7/13.
*/@RestController@RequestMapping(value = "/Commodity")public class CommodityController { @Autowiredprivate CommodityService commodityService; /** http://localhost:8080/Commodity/searchCommdityByCondition/2/2
* Through all parameters(you can give one param or any more param) to search Commdity. * @param firstType* @param secondType* @param secondType* @param commName* @param price01* @param price02* @param pageNumber* @param pageSize* @return PageInfo<Commodity> */@ApiOperation(value = "searchCommBySearchBy", notes = "Search Commidty By Search condition: XUPENGFEI") @ApiImplicitParams({ @ApiImplicitParam(name ="firstType",value ="First Type",required = false,dataType = "String", paramType = "query"), @ApiImplicitParam(name ="secondType",value ="First Type",required = false,dataType = "String",paramType = "query"), @ApiImplicitParam(name ="commName",value ="Commdity name",required = false,dataType = "String",paramType = "query"), @ApiImplicitParam(name ="price01",value ="First price",required = false,dataType = "Double",paramType = "query"), @ApiImplicitParam(name ="price02",value ="Second price",required = false,dataType = "Double",paramType = "query") }) @RequestMapping(value = "/searchCommdityByCondition/{pageNumber}/{pageSize}", method = RequestMethod.GET) public PageInfo<Commodity> searchCommodityByCondition(String firstType, String secondType, String commName, Double price01, Double price02, @PathVariable Integer pageNumber, @PathVariable Integer pageSize) { PageInfo<Commodity> pageInfo = commodityService.searchCommodityByCondition(firstType,secondType,commName,price01,price02,pageNumber,pageSize); return pageInfo; }}
3.2 service層,此處介面省略,直接給出實現類: 
/**
 * Created by 
XuPengFei 
on 2017/7/13. */@Servicepublic class CommodityServiceImpl implements CommodityService{ @Autowiredprivate CommodityMapper commodityMapper; /** * Through all parameters(you can give one param or any more param) to search Commdity. * @param firstType* @param secondType* @param commName* @param price01* @param price02 * @param pageNumber* @param pageSize* @return PageInfo<Commodity> */@Overridepublic PageInfo<Commodity> searchCommodityByCondition(String firstType, String secondType, String commName, Double price01, Double price02, Integer pageNumber, Integer pageSize) { if(null!=firstType){ firstType = firstType.trim(); } if(null!=secondType){ secondType = secondType.trim(); } if(null!=commName){ commName = commName.trim(); } firstType = firstType == "" ? null: firstType; secondType = secondType == "" ? null: secondType; commName = commName == "" ? null : commName; if(null!= price01){ price01 = price01 >= 0 ? price01 : 0.00; }else { price01 =0.00; } if(null!= price02){ price02 = price02 >= price01 ? price02 : price01; } Page pp = new Page(pageNumber,pageSize); pp = PageUtil.pageParamCheck(pp); PageHelper.startPage(pp.getPageNumber(),pp.getPageSize()); List<Commodity> commodityList = commodityMapper.findPageCommodityBySearch(firstType,secondType,commName,price01,price02); PageInfo<Commodity> pageInfo = new PageInfo(commodityList); return pageInfo; }}
3.2 dao層(Mapper介面): 
public interface CommodityMapper {

    /**
     * Through all parameters(you can give one param or any more param) to search Commdity.
     * @param firstType
* @param secondType
* @param commName
* @param price01
* @param price02
* @return List<Commodity>
     */
public List<Commodity> findPageCommodityBySearch(@Param("firstType") String firstType, @Param("secondType") String secondType, @Param("commName") String commName,
                                                     @Param("price01") Double price01, @Param("price02") Double price02);
}

3.3 resource 下自己建立mapper包,裡面放自己的xml檔案
CommodityMapper.xml如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="so.sao.dao.CommodityMapper">
    <resultMap id="BaseResultMap" type="so.sao.domain.Commodity">
        <id column="ID" property="id"/>
        <result column="COMM_NAME" property="name"/>
        <result column="COMM_DESCRIBE" property="describe"/>
        <result column="FIRSTTYPE" property="firstType"/>
        <result column="SECONDTYPE" property="secondType"/>
        <result column="THIRDTYPE" property="thirdType"/>
        <result column="NUM" property="num"/>
        <result column="NUM69" property="num69"/>
        <result column="BRAND" property="brand"/>
        <result column="COMM_NO" property="no"/>
        <result column="WEIGHT" property="weight"/>
        <result column="DUCTIONDATE" property="ductionDate"/>
        <result column="MINIMG" property="minImg"/>
        <result column="MAXIMG" property="maxImg"/>
        <result column="PRICE" property="price"/>
        <result column="PAYPRICE" property="payPrice"/>
        <result column="ADDESC" property="adDesc"/>
        <result column="COMM_STATUS" property="status"/>
        <result column="CREATEDUSER" property="createdUser"/>
        <result column="CREATEDAT" property="createdAt"/>
        <result column="UPDATEDAT" property="updatedAt"/>
    </resultMap>

    <!-- Through all parameters(you can give one param or any more param) to search Commdity-->
<select id="findPageCommodityBySearch" resultMap="BaseResultMap">
        SELECT ID,COMM_NAME,COMM_DESCRIBE,FIRSTTYPE,SECONDTYPE,THIRDTYPE,NUM,NUM69,BRAND,
        COMM_NO,WEIGHT,DUCTIONDATE,MINIMG,MAXIMG,PRICE,PAYPRICE,ADDESC,COMM_STATUS,CREATEDUSER,CREATEDAT,UPDATEDAT
        FROM TB_COMMODITY tb01
        <where>
            <if test="firstType != null">
                AND tb01.FIRSTTYPE = #{firstType}
            </if>
            <if test="secondType != null">
                AND tb01.SECONDTYPE = #{secondType}
            </if>
            <if test="commName != null">
                AND tb01.COMM_NAME LIKE CONCAT ('%',#{commName},'%')
            </if>
            <if test="price01 != null and price02!=null">
                AND tb01.PRICE BETWEEN #{price01} AND #{price02}
            </if>
        </where>
    </select>
</mapper>

3.4 前面用到的工具類:新建一個Util包
------------PageUtil類如下:
public class PageUtil{

    public static Page pageParamCheck(Page page)
    {
        int pageNum = page.getPageNumber();
        int pageSize = page.getPageSize();
        //分頁引數校驗、處理
pageNum = pageNum > 0 ? pageNum : PageConstant.PAGE_NUM_DEFAULT;
        pageSize = pageSize > 0 ? pageSize : PageConstant.PAGE_SIZE_DEFAULT;
        pageNum = pageNum < 500 ? pageNum : PageConstant.PAGE_NUM_MAX_DEFAULT;
        pageSize = pageSize < 50 ? pageSize : PageConstant.PAGE_SIZE_MAX_DEFAULT;

        page.setPageNumber(pageNum);
        page.setPageSize(pageSize);
        return page;
    }
}
------PageConstant(常量類,名字不好,其實大家可以起名Constant存放所有本專案用到的常量)
/**
 * pagesize預設值10
 */
public static final int PAGE_SIZE_DEFAULT = 10 ;
/**
 * pagenume預設值1
 */
public static final int PAGE_NUM_DEFAULT = 1 ;
/**
 * pagesize最大預設值50
 */
public static final int PAGE_SIZE_MAX_DEFAULT = 50 ;
/**
 * pagenume最大預設值500
 */
public static final int PAGE_NUM_MAX_DEFAULT = 500 ;

相關推薦

Idea+SpringBoot+Mybtis+Mysql+Gradle+Swagger2

專案說明:1.開發工具: Idea(2017.1.5),jdk1.8使用框架,資料庫,jar庫依賴:SpringBoot+Mybtis, Mysql, Gradle4.0後臺測試使用:Swagger22. 本專案模仿的需求: 商品的動態查詢3,程式碼展示和說明:(1)掃描da

Kotlin+IDEA+SpringBoot+MyBatis+MySQL+Gradle專案

1. File -> new -> Project ->Spring Initializr 2. next 說明: Group:包名 Artifact: 專案名(需要小寫) Type:構建工具 (這裡選擇Gradle Project) Language:

基於dubbo的分散式專案框架搭建 開發工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基於Swagger2的restful api) --(二)

1.dubbo-admin 2.5.8的安裝 http://dubbo.apache.org/en-us/index.html 點選GITHUB 跳轉到github下載dubbo原始碼  點選Branch切換到Tags,找到對應的2.5.8版本,下載該版本,下載解壓完以後

基於dubbo的分散式專案框架搭建 開發工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基於Swagger2的restful api) --(一)

1. spring-boot web框架下載配置 https://start.spring.io/ 點選Switch to the full version  勾選詳細的配置   根據需要更改group atrifact...等資訊 &nb

基於dubbo的分散式專案框架搭建 開發工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基於Swagger2的restful api) --(四)

1.rabbitmq的整合 首先在配置檔案裡增加 #rabbitMQ spring.rabbitmq.host=127.0.0.1 spring.rabbitmq.port=5672 spring.rabbitmq.username=root spring.rabbitmq.password

基於dubbo的分散式專案框架搭建 開發工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基於Swagger2的restful api) --(三)

1.dubbo註冊中心zookeeper 的安裝 http://mirrors.shu.edu.cn/apache/zookeeper/ 選擇對應的版本下載即可 修改zoo_sample.cfg為zoo.cfg(可以先備份一份) 在安裝目錄新建data和log目錄 修改zo

詳細步驟!!!idea+springboot+mybatis+jsp+bootstrap實現從mysql查詢出資料並顯示(原始碼)

實現效果: 資料庫對應資料: 開發環境: IntelliJ IDEA 2017.2.5 x64 java version "1.8.0_151" x64 mysql 6.0.11-alpha-community x64 步驟: 1.建立工程: file--new-

[IDEA]::springboot框架搭建,整合mysql資料庫

1.完整工程目錄圖如下 2.開啟idea,左上角 file–>new–>project–>選擇spring Initializar,選擇 jdk ,然後next 3,出現下圖,繼續next,這裡可以修改你想要的檔名 4.只選中web,next 5.可以工程名,和工程存

idea開發springbootmysql資料庫連線問題

今天在家用idea進行springboot開發,前面一些坑相對避免了,但是到資料庫這塊總是連線不上,報錯主要是:Access denied for user 'root'@'localhost' (using password: NO)網頁上顯示錯誤This applicat

idea springboot熱部署無效問題

pen sdn href ati intel int idea title spring Intellij IDEA 使用Spring-boot-devTools無效解決辦法 springboot項目中遇到的bug <dependencies>

SpringBoot+rest接口+swagger2生成API文檔+validator+mybatis+aop+國際化

create dea ppi pro time success 類定義 -- sse 代碼地址:JillWen_SpringBootDemo mybatis 1. 添加依賴: <dependency> <groupId>org.m

使用idea+springboot+Mybatis搭建web項目

data rom project mysql ride 接口 mar isp 結構 使用idea+springboot+Mybatis搭建web項目 springboot的優勢之一就是快速搭建項目,省去了自己導入jar包和配置xml的時間,使用非常方便。 1、創建項目p

idea+springboot+Mybatis搭建web項目

.com pin cache 完成後 stat idea leaf als div 使用idea+springboot+Mybatis搭建一個簡單的web項目。 首先新建一個項目; 在這裏選擇Maven項目也可以,但是IDEA為我們提供了一種更方便快捷的創建方法,即Spr

idea中,使用Gradle創建的項目,如何變為web項目

解決 技術分享 desc face 引用 位置 ctrl web.xml facet 當idea開發項目時,使用gradle構建項目,包引用完後,發現idea並沒有正確識別項目為web項目。 主要有兩點表現: 1. src/main/resources的resources目

SpringBoot+MyBatis+Mysql 詳細示例

sdf 刪除 對數 code 登錄 lease unit pom.xml文件 http SpringBoot與MyBatis整合,底層數據庫為mysql的使用示例 新建maven項目,web項目,項目名為 bootdemo 項目結構目錄如下:還有個pom.xml文件沒

IntelliJ IDEA如何導入Gradle項目

http htm AI 窗口 AD port 分享 配置 tps 最近學習Gradle,本文來重點介紹一下,如何使用IntelliJ IDEA導入`Gradle項目的一種方法。選擇菜單欄的File->Open。在打開的窗口選擇對應Gra

微服務之分布式跟蹤系統(springboot+zipkin+mysql

目前 gets nds database tails 服務 關系圖 clust back 通過上一節《微服務之分布式跟蹤系統(springboot+zipkin)》我們簡單熟悉了zipkin的使用,但是收集的數據都保存在內存中重啟後數據丟失,不過zipkin的S

springboot+jpa+mysql+redis+swagger整合步驟

cti pom bsp mysql 方式 引入 ger value mys springboot+jpa+MySQL+swagger框架搭建好之上再整合redis: 在電腦上先安裝redis: 一、在pom.xml中引入redis 二、在application.yml裏配

基於springboot+bootstrap+mysql+redis搭建一套完整的許可權架構【八】【完善整個專案】

上一章我們已經完成了選單模組的開發工作,那麼到了本章我們將完成我們角色管理模組的開發工作,在本章開始一個全新的模組進行開發的時候我們需要遵守一定的命名和開發規範如下: 1、我們的Controller的RequestMapping的命名要和我們的資料夾的命名一致,且增加的頁面要

SpringBoot JPA MySQL 遇到中文亂碼的解決辦法

轉載於:https://blog.csdn.net/sanpic/article/details/79344562 在SpringBoot JPA中使用MySQL時, 資料庫的值為中文亂碼, 需要如下兩個方面的設定,  1. 資料庫的編碼為UTF-8, 或者GB2312 也可以.