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);
}
扫描二维码关注公众号,回复: 8306299 查看本文章

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/

猜你喜欢

转载自www.cnblogs.com/zhangzimuzjq/p/12095062.html