SpringBoot整合SSM(代碼實現Demo)

SpringBoot整合SSM

如圖所示:前端

1、數據準備:

數據庫文件:數據庫名:saas-export,表名:ss_companyjava

建立表語句:mysql

DROP TABLE IF EXISTS ss_company;
CREATE TABLE ss_company (
  id varchar(40) NOT NULL COMMENT 'ID',
  name varchar(255) DEFAULT NULL COMMENT '公司名稱',
  expiration_date datetime DEFAULT NULL COMMENT '到期時間',
  address varchar(255) DEFAULT NULL COMMENT '公司地址',
  license_id varchar(255) DEFAULT NULL COMMENT '營業執照-圖片',
  representative varchar(255) DEFAULT NULL COMMENT '法人表明',
  phone varchar(255) DEFAULT NULL COMMENT '公司電話',
  company_size varchar(255) DEFAULT NULL COMMENT '公司規模',
  industry varchar(255) DEFAULT NULL COMMENT '所屬行業',
  remarks varchar(255) DEFAULT NULL COMMENT '備註',
  state int(2) DEFAULT '1' COMMENT '狀態',
  balance double DEFAULT NULL COMMENT '當前餘額',
  city varchar(20) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

數據插入語句:web

INSERT INTO ss_company VALUES ('1', '字節跳動', null, '北京', 'xxx002', '張某', '123', '10000人以上', '互聯網', '互聯網公司', '1', '100', '北京');
INSERT INTO ss_company VALUES ('2', '百度', null, '北京市海淀區', 'bzd001', '李某', '110', '5000-10000人', '計算機', '', '1', '100', '北京');
INSERT INTO ss_company VALUES ('3', '阿里巴巴', null, '中國杭州市濱江區', 'bzd002', '馬某', '110', '5000-10000人', '電子商務', '', '1', '100', '杭州');
INSERT INTO ss_company VALUES ('4', '騰訊', null, '深圳市南山區', 'bzd003', '馬某', '110', '5000-10000人', '遊戲', '', '1', '100', '深圳');

2、建立SpringBoot工程步驟:

一、起步依賴:導入SpringBoot所需的pom.xml文件

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.6.RELEASE</version>
</parent><properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties><dependencies>
    <!-- **web的起步依賴springMVC -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency><!--jdbc-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <!--springboot支持的是jpa,mybatisplus本身作了啓動器-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.1.2</version>
    </dependency>
    <!--mysql-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency><!--spring-test-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency><!--添加lombok依賴-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.6</version>
    </dependency>
</dependencies>
<!--maven插件Spring Boot應用提供了執行Maven操做的可能-->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

二、配置application.yml文件

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/saas-export?characterEncoding=utf-8
    username: root
    password: root
​
server:
  port: 8088

三、配置啓動類ApplicationTest

package com.darren;
​
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
​
@SpringBootApplication
@MapperScan("com.darren.dao")
public class ApplicationTest {
    public static void main(String[] args) {
        SpringApplication.run(ApplicationTest.class,args);
    }
}

2、整合SSM

備註:利用MyBatis逆向工程生成對應的pojo實體類、dao接口以及對應的映射文件spring

一、建立pojo實體類

package com.darren.pojo;
​
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
​
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("ss_company")
public class Company implements Serializable {
    /**
     * AUTO : AUTO(0, 「數據庫ID自增」),
     * INPUT : INPUT(1, 「用戶輸入ID」),
     * ID_WORKER : ID_WORKER(2, 「全局惟一ID」),默認值若是不設置會在用該策略
     * UUID : UUID(3, 「全局惟一ID」),
     * NONE : NONE(4, 「該類型爲未設置主鍵類型」),
     * ID_WORKER_STR : ID_WORKER_STR(5, 「字符串全局惟一ID」);
     */
​
    @TableId(type = IdType.UUID)
    private String id;
​
    private String name;
​
    private Date expirationDate;
​
    private String address;
​
    private String licenseId;
​
    private String representative;
​
    private String phone;
​
    private String companySize;
​
    private String industry;
​
    private String remarks;
​
    private Integer state;
​
    private Double balance;
​
    private String city;
​
    private static final long serialVersionUID = 1L;
}

二、建立Result類(建議)

備註:Result類主要是在使用postman測試的時候,給出提示信息sql

package com.darren.pojo;
​
import java.io.Serializable;
​
public class Result implements Serializable {
​
    private boolean success;   //狀態判斷
    private String message;    //返回的消息內容
​
​
    public Result(boolean success,String message) {
        this.message = message;
        this.success = success;
    }
​
    public String getMessage() {
        return message;
    }
​
    public void setMessage(String message) {
        this.message = message;
    }
​
    public boolean isSuccess() {
        return success;
    }
​
    public void setSuccess(boolean success) {
        this.success = success;
    }
}

三、建立Dao接口

備註:因爲com.baomidou.mybatisplus.core.mapper包已經封裝了CRUD功能,因此這裏的Dao接口只需繼承對應的BaseMapper<Company>接口就能夠了數據庫

package com.darren.dao;
​
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.darren.pojo.Company;
​
public interface CompanyDao extends BaseMapper<Company> {
}

四、建立Service接口

package com.darren.service;
​
import com.darren.pojo.Company;
​
import java.util.List;
​
public interface CompanyService {
    //查詢全部
    List<Company> findAll();
​
    //單一查詢
    Company findOne(String id);
​
    //更新
    void update(Company company);
​
    //添加
    void add(Company company);
​
    //刪除
    void delete(String id);
}

五、建立ServiceImpl實現類

package com.darren.service.impl;
​
import com.darren.dao.CompanyDao;
import com.darren.pojo.Company;
import com.darren.service.CompanyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
​
import java.util.List;
@Service
public class CompanyServiceImpl implements CompanyService {
    @Autowired
    private CompanyDao companyDao;
    @Override
    public List<Company> findAll() {
        return companyDao.selectList(null);
    }
​
    @Override
    public Company findOne(String id) {
        return companyDao.selectById(id);
    }
​
    @Override
    public void update(Company company) {
        companyDao.updateById(company);
    }
​
    @Override
    public void add(Company company) {
        companyDao.insert(company);
    }
​
    @Override
    public void delete(String id) {
        companyDao.deleteById(id);
    }
}

六、建立Controller類

package com.darren.controller;
​
import com.darren.pojo.Company;
import com.darren.pojo.Result;
import com.darren.service.CompanyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
​
import java.util.List;
​
@RestController
@RequestMapping("/company")
public class CompanyController {
    @Autowired
    private CompanyService companyService;
​
    /**
     * RESTful風格編程
     *      查詢:get
     *      修改:put
     *      添加:post
     *      刪除:delete
     * @return
     *///查詢全部
    @GetMapping
    public List<Company> findAll(){
        return companyService.findAll();
    }
​
    //查詢單一
    @GetMapping("/{id}")
    public Company findById(@PathVariable String id){
        return companyService.findOne(id);
    }
​
    //添加
    @PostMapping
    public Result add(@RequestBody Company company){
        try {
            companyService.add(company);
            return new Result(true,"新增成功");
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false,"新增失敗");
        }
    }
​
    //修改
    @PutMapping
    public Result update(@RequestBody Company company){
        try {
            companyService.update(company);
            return new Result(true,"修改爲功");
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false,"修改失敗");
        }
    }
​
    //刪除
    @DeleteMapping("/{id}")
    public Result delete(@PathVariable String id){
        try {
            companyService.delete(id);
            return new Result(true,"刪除成功");
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false,"刪除失敗");
        }
    }
}

3、測試整合結果

啓動ApplicationTest啓動類,因爲沒有前端頁面,因此這裏使用postman工具進行測試編程

一、測試 "查詢" 結果:

二、測試 "增長" 結果

三、測試 "修改" 結果

四、測試 "刪除" 結果

相關文章
相關標籤/搜索