myEclipse 搭建 Spring boot+myBatis+maven 項目流程


1、新建一個工程

new-->maven project-->next-->next-->在filter中搜索webapp-->group id、Artifact id-->完成。

2、配置pom.xml文件

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.mg39.ssm</groupId>
    <artifactId>test03</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>test03 Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <!--第一步   spring官方的叫stater poms,它可以提供dependency management,
            也就是依賴管理,引入以后在聲明其它dependency的時候就不需要version了
            但是mybatis需要?????-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <!-- <version>4.0</version> -->
            <scope>test</scope>
        </dependency>
        <!--第二步 官方解釋spring-boot-start-web包含了spring webmvc和tomcat等web開發的特性-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--添加MySQL的jar -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!--添加mybatis的jar -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

        <!--添加模板框架thymeleaf -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <!--模板框架依賴的jar -->
        <dependency>
            <groupId>net.sourceforge.nekohtml</groupId>
            <artifactId>nekohtml</artifactId>
            <!-- <version>1.9.22</version> -->
        </dependency>

    </dependencies>
    <build>
        <finalName>test03</finalName>

        <!--第三步 如果我們要直接Main啟動spring,那么以下plugin必須要添加,否則是無法啟動的。如果使用maven的spring-boot:run的話就不需要此配置。-->
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin </artifactId>
            </plugin>
        </plugins>

    </build>
</project>

 

3、編寫測試類(包名必須是其他包的父包,不然無法進入controller類)

測試類是程序的入口。寫完項目后在此類右鍵-->Java Application就可以運行。

Test03.java

package cn.mg39.ssm;        //此包是其他所有包的父包,也就是其他所有包都要以cn.mg39.ssm開頭,如cn.mg39.ssm.dao

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 添加注解
 */
@RestController
@SpringBootApplication
/**
 * 測試類名隨便寫,Test03是因這是我第三個boot
 * @author zhangzimu
 *
 */
public class Test03 {
    
    /**
     * 當項目運行起來時,在瀏覽器輸入http://localhost:8080/login。頁面就會有helloworld字樣。
     * @return
     */
    @RequestMapping("/login")
    public String login() {
        return "HelloWorld";
    }
    
    public static void main(String[] args) {
        SpringApplication.run(Test03.class, args);
    }
}

 

4、建實體類(SysGroup)

SysGroup.java

package cn.mg39.ssm.entity;
/**
 * 分組實體
 *
 */
public class SysGroup {
    private Integer id;        //分組id
    private String name;    //組名
    private String remark;    //備注
    
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public SysGroup() {
        super();
        // TODO Auto-generated constructor stub
    }
    public SysGroup(Integer id, String name, String remark) {
        super();
        this.id = id;
        this.name = name;
        this.remark = remark;
    }
    public SysGroup(Integer id) {
        super();
        this.id = id;
    }
    @Override
    public String toString() {
        return "SysGroup [id=" + id + ", name=" + name + ", remark=" + remark + "]";
    }
    
    
}

 

 

5、Dao接口(SysGroupDao)

    SysGroupDao.java

package cn.mg39.ssm.dao;

import org.apache.ibatis.annotations.Mapper;

import cn.mg39.ssm.entity.SysGroup;

@Mapper
public interface SysGroupDao {
    public Integer insert(SysGroup sysGroup);
}

 

 

 

6、配置mapper.xml(SysGroupDaoMapper.xml)

  01、在main/resources文件夾下新建文件夾mapper用於管理mapper文件

  02、在mapper下寫SysGroupDaoMapper.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="cn.mg39.ssm.dao.SysGroupDao">
    <insert id="insert" keyColumn="id" keyProperty="id"
        parameterType="sysGroup">
        insert into sys_group values(null,#{name},#{remark})
    </insert>
</mapper>

 

 

7、service接口(SysGroupService)

SysGroupService.java
package cn.mg39.ssm.service;

import cn.mg39.ssm.entity.SysGroup;
/**
*service接口
*/
public interface SysGroupService {
    public Boolean add(SysGroup sysGroup);
}

 

8、service實現類(SysGroupServiceImpl)

SysGroupServiceImpl.java
package cn.mg39.ssm.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.mg39.ssm.dao.SysGroupDao;
import cn.mg39.ssm.entity.SysGroup;
import cn.mg39.ssm.service.SysGroupService;

//<bean id="sysGroupService" class="cn.mg39.ssm.service.impl.SysGroupService">
@Service("sysGroupService")        //實現的功能和上面這句相同
public class SysGroupServiceImpl implements SysGroupService {
    
    @Autowired        //自動注入
    private SysGroupDao sysGroupDao;
    @Override
    public Boolean add(SysGroup sysGroup) {
        
        return sysGroupDao.insert(sysGroup) > 0;
    }

}

 

9、編寫controller類

SysGroupController.java

package cn.mg39.ssm.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import cn.mg39.ssm.entity.SysGroup;
import cn.mg39.ssm.service.SysGroupService;

@Controller
public class SysGroupController {
    @Autowired        //自動注入SysGroupService
    private SysGroupService sysGroupService;
    
    //瀏覽器地址欄端口后不寫路徑時顯示index.html(前綴和后綴在application.yml中配置)
    @RequestMapping("/")
    public String index() {
        return "index";            //classpath:/templates/index.html
    }
    
    @RequestMapping("/addGroup")        //index.html提交的數據傳給addGroup,再判斷跳轉,跳轉的網頁原則和上面一樣
    public String addGroup(SysGroup sysGroup) {
        
        if (sysGroupService.add(sysGroup)) {
            return "success";
        }else {
            return "fail";
        }
        
    }
}

 

10、在resources下編寫application.yml文件

application.yml(用於配置數據庫連接需要的參數和mybatis)

#spring的配置  application.yml
#/templates/success.html
spring:
  profiles:
    active: dev   #和xml格式差不多,相當於單標簽
  thymeleaf:
    cache: false        #開發時關閉緩存,不然沒法看到實時頁面
    mode: LEGACYHTML5   #用非嚴格的 HTML
    encoding: UTF-8
    servlet:
    content-type: text/html
    prefix: classpath:/templates/   #controller中return中值的前綴
    suffix: .html       #后綴
  datasource:     #下面為連接數據庫的相關參數
    url: jdbc:mysql://localhost:3306/hr_oa?characterEncoding=utf8&useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    
mybatis:    #myBatis的相關配置參數
  type-aliases-package: cn.mg39.ssm.entity    #掃描的包(忘記得差不多了)
  mapper-locations: classpath:mapper/*.xml    #CRUD的配置文件(在mapper下)

 

 

11、編寫HTML文件

  在main/resources下新建templates文件夾(因為前綴為templates),在里面寫HTML

    index.html
      input的name和實體對應的屬性值相同
    success.html
    fail.html

12、在測試類中運行

 

13、瀏覽器http://localhost:8080/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM