1 新建maven项目

springboot+mybatis整合(最详细)从maven项目开始

springboot+mybatis整合(最详细)从maven项目开始

springboot+mybatis整合(最详细)从maven项目开始

2 在pom.xml中加入spring boot 所需要的配置,创建spring boot的application.java执行文件

2.1 在pom.xml中引入spring-boot-start-parent,这是必须的

springboot+mybatis整合(最详细)从maven项目开始

2.2需要在pom.xml中引入spring-boot-starter-web依赖,依赖放在<dependencies>中,新建<dependency>,spring官方解释spring-boot-start-web包含了spring webmvctomcatweb开发的特性。这样就可以不用配置web.xml文件了

springboot+mybatis整合(最详细)从maven项目开始

2.3如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的。如果使用mavenspring-boot:run的话就不需要此配置。

springboot+mybatis整合(最详细)从maven项目开始

到这里spring boot的pom.xml文件,基本配置完成

3为了测试环境,设计一个启动类进行测试

springboot+mybatis整合(最详细)从maven项目开始

如果发现SpringBootApplication这个注解无法识别或者导入,可能是版本不匹配的问题,看看导入的maven包里面的spring-boot-autoConfigure的版本与自定义的版本一不一致,如果不一致,就到本地依赖包里面将repository\org\springframework\boot\spring-boot-autoconfigure文件夹删除,然后update项目即可,重启eclipse

springboot+mybatis整合(最详细)从maven项目开始

springboot+mybatis整合(最详细)从maven项目开始

至此,一个spring boot项目已经搭建完毕,接下来整合Mybatis项目;

4整合mybatis项目

4.1在pom.xml文件中加入mybatis需要的依赖

springboot+mybatis整合(最详细)从maven项目开始

如果没有写mysql的版本,可能会默认下载最新版,这样的话mysql的驱动写法可能发生改变,需要注意一下。

4.2配置application.properties文件

springboot+mybatis整合(最详细)从maven项目开始

springboot+mybatis整合(最详细)从maven项目开始

4.3 mybatis generator的相关配置文件

Pom.xml的添加:

springboot+mybatis整合(最详细)从maven项目开始

在resources/generator/创建一个generatorConfig.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE generatorConfiguration

        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>

     <!-- 引入配置文件 -->

     <properties resource="application.properties"/>

     <!-- 一个数据库一个context -->

     <!--

     defaultModelType:指定生成对象的样式

     flat:所有内容(主键,blob)等全部生成在一个对象中

     targetRuntime:

     MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample

      -->

     <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">

         <!--

              delimitIdentifiers:参考tableName的解释,

              注意,默认的delimitIdentifiers是双引号,

              如果类似MYSQL这样的数据库,使用的是`(反引号,

              那么还需要设置contextbeginningDelimiterendingDelimiter属性)

          -->

          <property name="beginningDelimiter" value="`"/>

          <property name="endingDelimiter" value="`"/>

         

          <!-- 注释 --> 

          <commentGenerator > 

              <property name="suppressAllComments" value="true"/><!-- 是否取消注释 --> 

              <property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳--> 

          </commentGenerator>

         

          <!-- jdbc连接 -->

          <jdbcConnection driverClass="${spring.datasource.driver-class-name}"

                        connectionURL="${spring.datasource.url}"

                        userId="${spring.datasource.username}"

                        password="${spring.datasource.password}">

        </jdbcConnection>

       

        <!-- 类型转换 -->

        <javaTypeResolver>

       

           <!-- 是否使用bigDecimal false可自动转化以下类型(Long, Integer, Short, etc. -->

            <property name="forceBigDecimals" value="false"/>

        </javaTypeResolver>

       

        <!-- 生成实体类地址 --> 

        <javaModelGenerator targetPackage="cn.huangwei.bean" targetProject="src/main/java">

          

           <!-- 是否在当前路径下新加一层schema,egfase路径com.oop.eksp.user.model true:com.oop.eksp.user.model.[schemaName] --> 

            <property name="enableSubPackages" value="false"/> 

           

            <!-- 是否针对string类型的字段在set的时候进行trim调用 --> 

            <property name="trimStrings" value="true"/>

        </javaModelGenerator>

       

        <!-- 生成mapper.xml文件 -->

        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources" > 

            <property name="enableSubPackages" value="false" /> 

        </sqlMapGenerator>

       

        <!-- 生成mapper.xml对应mapper.java,也就是接口dao -->

        <javaClientGenerator targetPackage="cn.huangwei.mapper" targetProject="src/main/java"

                             type="XMLMAPPER">

            <property name="enableSubPackages" value="true"/>

        </javaClientGenerator>

        <table tableName="jshop_area" domainObjectName="JshopArea"

              enableInsert="true" enableSelectByPrimaryKey="true"

            enableSelectByExample="false" enableUpdateByPrimaryKey="true"

            enableDeleteByPrimaryKey="true" enableDeleteByExample="false"

            enableCountByExample="false" enableUpdateByExample="false"

            selectByPrimaryKeyQueryId="false" selectByExampleQueryId="true">

            <!--

            schema即为数据库名 tableName为对应的数据库表 domainObjectName

              是要生成的实体类 enable*ByExample  

               是否生成 example   --> 

        </table> 

     </context>

</generatorConfiguration>

执行generator代码

springboot+mybatis整合(最详细)从maven项目开始

 

springboot+mybatis整合(最详细)从maven项目开始

就能看到生成的代码了

springboot+mybatis整合(最详细)从maven项目开始

4.4 在application添加mybatis别名与扫描包路径

springboot+mybatis整合(最详细)从maven项目开始

在springboot的启动文件BootMybatisApplication.java添加注解

springboot+mybatis整合(最详细)从maven项目开始

 

另外还得在mapper.java上添加@Mapper注解

springboot+mybatis整合(最详细)从maven项目开始

添加controller(JshopAreaController.java

package cn.huangwei.controller;

 

import java.util.ArrayList;

import java.util.List;

 

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

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

 

import com.huangwei.service.AreaService;

 

import cn.huangwei.bean.JshopArea;

 

@Controller

@RequestMapping(value="/wap/integral/")

public class JshopAreaController {

     @Autowired

     private AreaService areaService;

    

     @ResponseBody

     @RequestMapping(value="")

     public String getAreaHtml() {

         return "area";

     }

    

     @ResponseBody

    @RequestMapping(value="queryAreaList")

    public List<JshopArea> integralAreaList(Long id) {

        List<JshopArea> resultList = areaService.findByParentId(id);

        return resultList;

    }

 

    @ResponseBody

    @RequestMapping(value = "selectedArea")

    public List<JshopArea> getSelectedArea(@RequestBody List<String> stringIds){

        List<Long> ids = new ArrayList<>();

        for(String id : stringIds){

            ids.add(Long.parseLong(id));

        }

        List<JshopArea> resultList = areaService.findBySelectedId(ids);

 

        return resultList;

    }

}

 

springboot+mybatis整合(最详细)从maven项目开始

添加area.html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport"

          content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">

    <title>收货地址管理</title>

   

 

</head>

<body>

<div>

    <div id="result">

 

    </div>

    <table id="area">

        <thead>

            <td>选择</td>

            <td>区域</td>

        </thead>

 

    </table>

    <br/>

    <input type="button" value="提交" onclick="getArea()"/>

</div>

<script type="text/javascript" src="/jquery-1.6.2.js"></script>

<script>

    $(function () {

        initpage();

    });

 

    function getArea() {

        var divResult = $("#result");

        divResult.empty();

        var stringIds = new Array();

        var checkedId = $('input[name="header"]:checked');

        checkedId.each(function (i) {

            stringIds[i] = $(this).val();

        });

 

        $.ajax({

            type:'post',

            url:'/wap/integral/selectedArea',

            data:JSON.stringify(stringIds),

            contentType:"application/json",

            success: function(data){

                //data = JSON.parse(data);

                /* if (data.code == "000000") {

                    for (var i = 0; i < data.dataArray.length; i++) {

                        divResult.append("<span>" + data.dataArray[i].areaname  + "</span><br/>")

                    }

                } */

                for (var i = 0; i < data.length; i++) {

                    divResult.append("<span>" + data[i].areaname  + "</span><br/>")

                }

            }

        });

    }

 

    function initpage() {

        $.ajax({

            url: '/wap/integral/queryAreaList',

            success: function (data) {

                //data = JSON.parse(data);

                /*if (data.code == "000000") {

                     for (var i = 0; i < data.dataArray.length; i++) {

                        var trNode = $("<tr></tr>");

                        trNode.append($("<input type='checkbox' value='"+data.dataArray[i].id+"' name='header'/>"));

                        trNode.append($("<td>" + data.dataArray[i].areaname + "</td>"));

                        $("#area").append(trNode);

                    }

                }*/

                for (var i = 0; i < data.length; i++) {

                    var trNode = $("<tr></tr>");

                    trNode.append($("<input type='checkbox' value='"+data[i].id+"' name='header'/>"));

                    trNode.append($("<td>" + data[i].areaname + "</td>"));

                    $("#area").append(trNode);

                }

            }

 

        });

    }

 

</script>

</body>

</html>

 

5 测试结果

正常放在webapp是可以访问htm文件的

然后如果将html文件放在static文件夹中,得配置静态资源的访问

配置application.properties文件

springboot+mybatis整合(最详细)从maven项目开始

springboot+mybatis整合(最详细)从maven项目开始

 

 

 

 

相关文章: