java搭建基於springboot的ssm(spring + springmvc + mybatis)的maven項目

今天我們來搭建一個簡單的基於springboot的ssm(spring + springmvc + mybatis)的maven項目,使用的數據庫爲mysql。好了廢話不多說開始搞起。

最終項目目錄結構

這裏寫圖片描述

創建過程

1.創建開關SpringBootApplication

爲了創建快速。我們使用想法自帶的創建springboot來創建結構,當然創建普通的捲筒紙項目也是可以的。(使用蝕的同學可以按照一會的圖來自己創建目錄結構)

1.1創建項目,按照圖示進行選擇
這裏寫圖片描述 
1.2 
這裏寫圖片描述 
1.3 
這裏寫圖片描述 
1.4
這裏寫圖片描述

好了我們的初始項目算是創建完成了。項目結構如下圖所示,其中Ssmspringboot2Application就是我們的開關文件 
這裏寫圖片描述 
這裏寫圖片描述

其實現在一個最簡單的springboot項目我們已經搭建完成了。什麼?不相信?,你可以運行一下Ssmspringboot2Application這個文件呀。會報你未配置數據源,我們如下圖所示進行一下配置即可完成一個最簡單的springboot項目進行跑通 
這裏寫圖片描述

spring.datasource.url=jdbc:mysql://localhost:3306/maxrocky
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database = mysql
  • 1
  • 2
  • 3
  • 4

賬號密碼當然你要配置成你自己的.OK項目跑起來了。最簡單的springboot項目搭建完成。結束了?不不不我們要搭建ssm項目呀。
現在我們開始加入我們的ssm。

2.目錄結構簡單介紹

在給同學們演示如何將SSM融入到項目中之前,先和各位同學講一下目錄結構方便各位同學理解。

2.1 java

這個就不用多說了。放我們寫的的java文件的

2.2資源

springboot主張無XML配置,但是還是需要一些最基礎的信息配置的,例如SQL賬號密碼的設置,在簡潔你的賬號密碼還是需要你自己配置滴,它是沒辦法幫你自動生成的。所以一般配置文件都是放到資源下的。具體默認生成的文件都是做什麼的以及什麼資源放到什麼文件下可以看我之前寫過的一片關於各文件夾作用的文章springboot目錄結構詳解

2.3開關文件

Ssmspringboot2Application文件就是springboot的核心開關了。

3.整合

需求:從數據庫中查詢出某一用戶的所有信息返回給前臺頁面

好了,上面做了簡單的聲明。開始整合。還是基於開發的最基本的三層架架構進行開發。但是爲了方便省略服務層。
添加後的結構如下,具體解釋我放在了代碼的註釋中
這裏寫圖片描述

數據庫如下 
這裏寫圖片描述

3.1創建一個來接收查詢出來數據的對象

package com.example.demo.domain;

/**
 * Created by beyondLi on 2017/6/19.
 */

public class User {
    private Integer id;
    private String username;
    private Integer age;
    private Integer customerid;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getCustomerid() {
        return customerid;
    }

    public void setCustomerid(Integer customerid) {
        this.customerid = customerid;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", age=" + age +
                ", customerid=" + customerid +
                '}';
    }
}
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 三十
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

3.2 dao層創建接口

package com.example.demo.dao;

import com.example.demo.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

/**
 * Created by beyondLi on 2017/6/19.
 */
@Mapper     //聲明是一個Mapper,與springbootApplication中的@MapperScan二選一寫上即可
@Repository
public interface UserMapper {
    User selectUserByName(String name);
}
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3.3控制器層

package com.example.demo.controller;

import com.example.demo.dao.UserMapper;
import com.example.demo.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by beyondLi on 2017/6/19.
 */
//證明是controller層並且返回json
@RestController
public class UserController {
    //依賴注入
    @Autowired
    UserMapper userMapper;

    @RequestMapping(value = "cs")
    public User cs() {
        //調用dao層
        User user = userMapper.selectUserByName("beyondLi");
        return user;
    }

}
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

3.4主開關Ssmspringboot2Application

package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@SpringBootApplication
@EnableTransactionManagement//開啓事務管理
@MapperScan("com.example.demo.dao")//與dao層的@Mapper二選一寫上即可(主要作用是掃包)
public class Ssmspringboot2Application {

    public static void main(String[] args) {
        SpringApplication.run(Ssmspringboot2Application.class, args);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

我們一般基於MyBatis的都是將SQL寫到XML配置文件中。現在我們來添加映射 
這裏寫圖片描述

3.5創建對應的映射映射

<?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.dao.UserMapper" >

    <select id="selectUserByName"  resultType="User">
        SELECT * FROM user WHERE username = #{name}
    </select>

</mapper>
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9

3.6重點重點,不要跑項目。需要配置application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/maxrocky
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database = mysql
#Mybatis掃描
mybatis.mapper-locations=classpath*:mapper/*.xml
#起別名。可省略寫mybatis的xml中的resultType的全路徑
mybatis.type-aliases-package=com.example.demo.domain
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9

3.7 pom文件。我們爲了使用mapper註解還需要手動添加一個依賴

<?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>

    <groupId>com.example</groupId>
    <artifactId>ssmspringboot2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>ssmspringboot2</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </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>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--新增所需依賴-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 三十
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72

撒花!完結!大功告成。 
這裏寫圖片描述


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