zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    第二阶段冲刺10
    第二阶段冲刺9
    第二阶段冲刺8
    (转载)关于数组的几个面试题
    关于静态变量
    linux进程地址空间详解(转载)
    单例模式,多种实现方式JAVA
    最佳线程数
    python学习
    svn设置
  • 原文地址:https://www.cnblogs.com/zhangzimuzjq/p/12095062.html
Copyright © 2011-2022 走看看