SSM整合Springboot(一)簡單實現

目錄

項目結構圖:

數據庫建表:

正式開始:

一、向pom.xml文件中導入相關依賴

二、編寫與數據庫對應的實體類

三、編寫dao層下的接口類

四、編寫service層下的業務接口

五、編寫serviceimpl層下的業務實現類

六、完善springboot項目及其配置文件

1、springboot的啓動類

         2、編寫Mybatis的映射文件

         3、編寫Mybatis的配置文件

         4、編寫yml文件

七、編寫controller層下的控制器

開始測試

插入:

查詢:


項目結構圖:

數據庫建表:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for dept
-- ----------------------------
DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept`  (
  `deptno` int(9) NOT NULL AUTO_INCREMENT COMMENT '部門編號',
  `dname` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '部門名稱',
  `loc` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '部門地址',
  `dstatus` int(2) NULL DEFAULT NULL COMMENT '1:未刪除狀態,0:已刪除',
  PRIMARY KEY (`deptno`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '部門信息表' ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

正式開始:

一、向pom.xml文件中導入相關依賴

 <!--springboot父項目(統一當前spring整合版本)-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>
    <dependencies>
        <!--導入web啓動器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--mybatis啓動器-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.2.2</version>
        </dependency>

        <!-- pagehelper啓動器 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!--mysql驅動-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.25</version>
        </dependency>
        <!-- 阿里數據源 -->

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
        <!-- 熱部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <!-- optional=true,依賴不會往下傳遞,如果有項目依賴本項目,並且想要使用devtools,需要重新引入 -->
            <optional>true</optional>
            <scope>true</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <fork>true</fork><!-- 如果沒有該配置,熱部署的devtools不生效 -->
                    </configuration>
                </plugin>
                <!-- 自定義配置spring Boot使用的JDK版本 -->
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>

二、編寫與數據庫對應的實體類

package com.henu.springboot.entity;

/**
 * @author shkstart
 * @create 2019-10-18 19:52
 */
public class Dept {
    private Integer deptno;
    private String dname;
    private  String loc;
    private  Integer dstatus;

    public Integer getDeptno() {
        return deptno;
    }

    public void setDeptno(Integer deptno) {
        this.deptno = deptno;
    }

    public String getDname() {
        return dname;
    }

    public void setDname(String dname) {
        this.dname = dname;
    }

    public String getLoc() {
        return loc;
    }

    public void setLoc(String loc) {
        this.loc = loc;
    }

    public Integer getDstatus() {
        return dstatus;
    }

    public void setDstatus(Integer dstatus) {
        this.dstatus = dstatus;
    }

    @Override
    public String toString() {
        return "Dept{" +
                "deptno=" + deptno +
                ", dname='" + dname + '\'' +
                ", loc='" + loc + '\'' +
                ", dstatus=" + dstatus +
                '}';
    }
}


三、編寫dao層下的接口類

package com.henu.springboot.dao;
import com.henu.springboot.entity.Dept;
import org.springframework.stereotype.Repository;
import java.util.List;


@Repository
public interface DeptMapper {
     public int insert(Dept dept);
     public Dept queryById(int deptno);
     public List<Dept> queryAll();

}

四、編寫service層下的業務接口

package com.henu.springboot.service;
import com.henu.springboot.entity.Dept;
import java.util.List;

public interface DeptService {
    //添加數據
    public int insert(Dept dept);
    //根據deptno查詢
    public Dept queryById(int deptno);
    //查詢全部
    public List<Dept> queryAll();
}

五、編寫serviceimpl層下的業務實現類

package com.henu.springboot.serviceimpl;
import com.henu.springboot.dao.DeptMapper;
import com.henu.springboot.entity.Dept;
import com.henu.springboot.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class DeptServiceImpl implements DeptService {
    //注入dao層
    @Autowired
    public DeptMapper deptMapper;

    @Override
    public int insert(Dept dept) {
        return deptMapper.insert(dept);
    }
    @Override
    public Dept queryById(int deptno) {
        return deptMapper.queryById(deptno);
    }
    @Override
    public List<Dept> queryAll() {
        return deptMapper.queryAll();
    }
}

六、完善springboot項目及其配置文件

1、springboot的啓動類

package com.henu.springboot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@MapperScan("com.henu.springboot.dao")
public class DeptApplication {
    public static void main( String[] args )
    {
        SpringApplication.run(DeptApplication.class,args);
    }
}

2、編寫Mybatis的映射文件

<?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.henu.springboot.dao.DeptMapper">
    <!--向數據庫中添加數據  -->
    <insert id="insert" parameterType="Dept">
        	insert into dept(dname,loc,dstatus) values(#{dname},#{loc},#{dstatus});
        	</insert>

    <!-- query id -->
    <select id="queryById" parameterType="int" resultType="Dept">
        		select deptno,dname,loc,dstatus from dept where deptno=#{deptno};
        	</select>

    <!-- query All -->
    <select id="queryAll" resultType="Dept">
        		Select deptno,dname,loc,dstatus from dept;
        	</select>
</mapper>

3、編寫Mybatis的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 主配置文件 -->
<configuration>
    
</configuration>

4、編寫yml文件

##服務器配置
server:
  port: 8090
  servlet:
    path: /

##spring mvc
spring:
  datasource:
    name: druid
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/exam?characterEncoding=utf-8
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver


#整合mybatis
mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml #聲明Mybatis映射文件所在的位置
  config-location: classpath:mybatis.xml #聲明Mybatis配置文件所在位置
  type-aliases-package: com.henu.springboot.entity  #聲明類所在的包(簡化配置)

七、編寫controller層下的控制器

package com.henu.springboot.controller;
import com.henu.springboot.entity.Dept;
import com.henu.springboot.service.DeptService;
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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
public class DeptController {

    @Autowired
    public DeptService service;

    //根據deptno查詢
    @RequestMapping("/queryid")
    @ResponseBody
    public Dept queryById(@RequestParam("deptno") Integer deptno){
        return  service.queryById(deptno);
    }

        //插入數據
    @RequestMapping("/insert")
    @ResponseBody
    public boolean insert(Dept dept){
        System.out.println(dept);
        int i = service.insert(dept);
        if (i<1){
            return false;
        }
        return true;
    }

        //查詢全部
    @RequestMapping("/queryall")
    @ResponseBody
    public List<Dept> queryAll(){
        return  service.queryAll();
    }
}

開始測試

插入:

查詢:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章