`

145. Spring Boot MyBatis升级篇-XML

阅读更多

 

 

需求缘起:

在一节视频中,有这么一段留言:“会不会推出SpringBoot整合Mybaits配置文件sqlMapConfig.xml搭配mapper.xml的视频呢??? 看到有这个整合直接付款来看,结果是急速开发模式,sql都写在类中了,想看配置方式的 大神出一个吧。”粉丝需求,那才是真的需求。好吧,废话太多,不好,不好,还是赶紧进入正题。

本节大纲:

(1)MyBatis介绍
(2)配置思路
(3)新建project以及添加依赖包
(4)创建启动类App.java
(5)编写实体类Demo
(6)编写application配置文件,指定xml路径
(7)编写映射接口DemoMapper和XML
(8)编写service类DemoService
(9)编写控制类DemoController
(10)测试

 

       接下来看看本节的内容:

 

1MyBatis介绍

       来源MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 201311月迁移到Github

       介绍MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java POJOsPlain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。

 

2)配置思路

       Spring Boot中使用xml集成MyBatis的话,那么核心的文件就是实体类和SQL的映射类,比如DemoMapper,在此类当中就是普通的接口即可,那么对应SQL配置文件在Demo.xml中,那么要怎么能够识别到DemoMapper类呢,使用@MapperScan();在Demo.xml中使用<mapper> namespace属性进行指定指定xml文件和mapper的对应关系,那么现在的问题就是如何识别到Demo.xml配置文件呢,这个就很简单了,在application.properties文件中配置mapper的位置即可,形如:mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

       根据以上的思路,那我们编码大概的思路就是:

(a)编写实体类Demo;
(b)编写配置文件Demo.xml,主要是SQL;
(c)编写DemoMapper和Demo是对应的,在Service层就可以调用DemoMapper;
(d)在application.properties文件中配置Demo.xml文件的路径;

 

 

3)新建project以及添加依赖包

       新建project,取名为spring-boot-mybatis-xml,在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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.kfit</groupId>
  <artifactId>spring-boot-mybatis-xml</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
 
  <name>spring-boot-mybatis-xml</name>
  <url>http://maven.apache.org</url>
 
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
 
    <!-- spring boot parent节点,引入这个之后,在下面和spring boot相关的就不需要引入版本了; -->
    <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>1.4.1.RELEASE</version>
    </parent>
 
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
   
    <!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ........ -->
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
   
    <!-- mysql 数据库驱动. -->
    <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
    </dependency>
   
       <!-- spring-boot mybatis依赖:
       请不要使用1.0.0版本,因为还不支持拦截器插件,
     -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.0</version>
    </dependency>
   
  </dependencies>
</project>
 

 

 

4)创建启动类App.java

编写启动类,注意,添加了@MapperScan("com.kfit.*.mapper"),扫描mapper接口:

 

package com.kfit;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
/**
 *
 * @author Angel --守护天使
 * @version v.0.1
 * @date 2017年8月4日
 */
@SpringBootApplication
@MapperScan("com.kfit.*.mapper")
public class App {
    public static void main(String[] args) {
       SpringApplication.run(App.class, args);
    }
}
 

 

 

5)编写实体类Demo

编写Demo类,主要属性id,name

 

package com.kfit.demo.bean;
 
public class Demo {
    private int id;
    private String name;
    public int getId() {
       return id;
    }
    public void setId(intid) {
       this.id = id;
    }
    public String getName() {
       return name;
    }
    public void setName(String name) {
       this.name = name;
    }
}
 

 

 

6)编写application配置文件,指定xml路径

########################################################

###datasource -- mysql的数据库配置.

########################################################

spring.datasource.url = jdbc:mysql://localhost:3306/test

spring.datasource.username = root

spring.datasource.password = root

spring.datasource.driverClassName = com.mysql.jdbc.Driver

spring.datasource.max-active=20

spring.datasource.max-idle=8

spring.datasource.min-idle=8

spring.datasource.initial-size=10

 

 

########################################################

###mybatis配置.

########################################################

mybatis.mapper-locations=classpath:com/kfit/*/mapper/*.xml

 

在这里重要的配置是:mybatis.mapper-locations=classpath:com/kfit/*/mapper/*.xml

 

7)编写映射接口DemoMapperxml文件

编写XML文件,Demo.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="com.kfit.demo.mapper.DemoMapper">
   
    <!--  insert 语句. -->
    <insert id="save" parameterType="com.kfit.demo.bean.Demo" useGeneratedKeys="true" keyProperty="id">
       insert into demo (name) values (#{name})
    </insert>
   
</mapper>
 

 

 

编写DemoMapper接口:

 

package com.kfit.demo.mapper;
 
public interface DemoMapper {
    public void save(Demo demo);
}
 

 

 

 

8)编写serviceDemoService

 

package com.kfit.demo.service;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.kfit.demo.bean.Demo;
import com.kfit.demo.mapper.DemoMapper;
 
@Service
public class DemoService {
   
    @Autowired
    private DemoMapper demoMapper;
   
@Transactional
    public void save(Demo demo){
       demoMapper.save(demo);
    }
   
}
 

 

 

9)编写控制类DemoController

 

package com.kfit.demo.controller;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import com.kfit.demo.bean.Demo;
import com.kfit.demo.service.DemoService;
 
@RestController
public class DemoController {
    @Autowired
    private DemoService  demoService;
   
    // http://127.0.0.1:8080/save
    @RequestMapping("/save")
    public Demo save(){
       Demo demo = new Demo();
       demo.setName("张三");
       demoService.save(demo);
       return demo;
    }
}
 

 

 

10)测试

启动,访问地址:http://127.0.0.1:8080/save

在浏览器可以看到:

{

id0,

name"张三"

}

 

 

à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr 

分享到:
评论
2 楼 林祥纤 2018-01-30  
luwenting87 写道
您好,pom文件中需要加
<resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
</resources>

springboot项目默认的打包时,不会把java文件中的xml配置文件打包进去


什么版本的?
1 楼 luwenting87 2018-01-29  
您好,pom文件中需要加
<resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
</resources>

springboot项目默认的打包时,不会把java文件中的xml配置文件打包进去

相关推荐

    mybatis-plus-spring-boot3-starter-3.5.9.jar

    mybatisplus,MyBatis-Plus 是一个 MyBatis 的...如果使用Spring Boot3,请在pom.xml中添加依赖: &lt;groupId&gt;com.baomidou&lt;/groupId&gt; &lt;artifactId&gt;mybatis-plus-spring-boot3-starter &lt;version&gt;3.5.9 &lt;/dependency&gt;

    spring-boot-starter-mybatis-spring-boot-1.0.2.zip

    (1) 添加依赖:在项目的pom.xml或build.gradle文件中,引入Spring Boot Starter MyBatis的依赖。对于1.0.2版本,对应的Maven依赖如下: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-...

    spring-boot-starter-mybatis-spring-boot-1.3.3.tar.gz

    通过这个起步依赖,我们可以快速地搭建起Spring Boot与MyBatis的整合环境,无需手动配置大量的XML或Java代码。 1. **集成过程** 集成MyBatis到Spring Boot项目的第一步是添加对应的依赖。在`pom.xml`文件中,我们...

    spring-boot-starter-mybatis-spring-boot-2.2.1.zip

    《Spring Boot集成MyBatis详解:基于Spring Boot 2.2.1版本》 在现代Java开发中,Spring Boot框架以其简洁、高效的特性受到了广大开发者喜爱。而MyBatis作为一款优秀的持久层框架,简化了数据库操作,使得SQL与Java...

    spring-boot-starter-mybatis-spring-boot-2.1.2.zip

    - **添加依赖**:在`pom.xml`或`build.gradle`中引入`spring-boot-starter-data-jpa`和`mybatis-spring-boot-starter`依赖。例如,在`pom.xml`中: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;...

    spring-boot-starter-mybatis-spring-boot-2.3.0.tar.gz

    《Spring Boot集成MyBatis详解:以2.3.0版本为例》 Spring Boot作为一款快速开发框架,极大地简化了Java应用的初始化和配置过程。而MyBatis作为一款优秀的持久层框架,以其灵活的SQL操作和良好的注解支持,深受...

    spring-boot-starter-mybatis-spring-boot-1.1.1.zip

    Spring Boot默认会寻找类路径下的`mybatis-config.xml`文件。 ```xml &lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ...

    spring-boot-starter-mybatis-spring-boot-2.2.2.zip

    在Spring Boot项目中,我们首先需要在`pom.xml`文件中引入`spring-boot-starter-mybatis`依赖。如下所示: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-data-jpa &lt;groupId&gt;...

    spring-boot-starter-mybatis-spring-boot-1.3.4.zip

    `spring-boot-starter-mybatis`是Spring Boot为MyBatis提供的一个starter,它包含了MyBatis、MyBatis-Spring、以及相关的依赖,使得开发者可以方便地在Spring Boot项目中使用MyBatis。在`pom.xml`或`build.gradle`...

    spring-boot-starter-mybatis-spring-boot-1.3.1.zip

    1. **添加依赖**:在`pom.xml`或`build.gradle`中引入`spring-boot-starter-mybatis`。对于Maven用户,需要在`dependencies`节点下添加: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-...

    spring-boot-starter-mybatis-spring-boot-2.1.3.zip

    《Spring Boot集成MyBatis详解:基于spring-boot-starter-mybatis-2.1.3》 在Java开发领域,Spring Boot以其便捷的初始化、自动配置和开箱即用的特性深受开发者喜爱。而MyBatis作为一款轻量级的持久层框架,提供了...

    spring-boot-starter-mybatis-spring-boot-2.1.0.tar.gz

    通过这个"spring-boot-starter-mybatis-spring-boot-2.1.0"压缩包,开发者可以直接获取到对应版本的依赖,方便进行项目的初始化和升级,节省了查找和验证不同版本兼容性的时间。而免费下载的特性则进一步降低了开发...

    spring-boot-starter-mybatis-spring-boot-3.0.1.zip

    在集成MyBatis到Spring Boot 3.0.1项目中,首先需要在`pom.xml`或`build.gradle`文件中添加依赖。对于Maven用户,可以添加以下依赖: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-...

    spring-boot-starter-mybatis-spring-boot-1.0.1.tar.gz

    通过这个starter,我们可以快速搭建起Spring Boot和MyBatis的整合环境,避免手动配置大量的XML配置文件。 1. **依赖引入**: 在`pom.xml`文件中,我们需要添加`spring-boot-starter-data-jpa`和`spring-boot-...

    spring-boot-starter-mybatis-spring-boot-2.3.1.tar.gz

    《Spring Boot集成MyBatis详解:以spring-boot-starter-mybatis-2.3.1为例》 在现代Java开发中,Spring Boot以其简洁、高效的特点成为首选框架,而MyBatis作为轻量级的持久层框架,也因其灵活的数据访问能力受到...

    spring-boot-starter-mybatis-spring-boot-1.2.1.tar.gz

    - 添加依赖:在`pom.xml`或`build.gradle`文件中引入`spring-boot-starter-data-jpa`和`mybatis-spring-boot-starter`依赖。 - 配置数据源:Spring Boot会自动发现并配置数据源,只需要在`application.properties`...

    spring-boot-starter-mybatis-spring-boot-1.3.0.tar.gz

    Spring Boot Starter MyBatis是Spring Boot为MyBatis提供的起步依赖,它包含了MyBatis、MyBatis-Spring等核心组件,使得开发者可以快速地在Spring Boot项目中集成MyBatis,避免了繁琐的配置工作。 2. **集成步骤**...

    spring-boot-starter-mybatis-spring-boot-1.3.4.tar.gz

    1. 添加依赖:在`pom.xml`或`build.gradle`文件中引入`spring-boot-starter-mybatis`依赖,如下所示(以Maven为例): ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-data-jpa ...

    spring-boot-starter-mybatis-spring-boot-3.0.0.tar.gz

    - 添加依赖:在项目中的`pom.xml`或`build.gradle`文件中,引入`spring-boot-starter-mybatis`的依赖。 - 配置数据源:Spring Boot提供了多种数据源选择,如HikariCP等,通过配置文件(`application.properties`或`...

    spring-boot-starter-mybatis-spring-boot-2.1.2.tar.gz

    《Spring Boot集成MyBatis详解:基于spring-boot-starter-mybatis-2.1.2》 在现代Java开发中,Spring Boot以其简化配置、快速启动的特性,深受开发者喜爱。而MyBatis作为轻量级的持久层框架,以其灵活的SQL映射,...

Global site tag (gtag.js) - Google Analytics