mybatis mysql升级_145. Spring Boot MyBatis升级篇-XML
需求缘起:在一节视频中,有这么一段留言:“会不会推出SpringBoot整合Mybaits配置文件sqlMapConfig.xml搭配mapper.xml的视频呢???看到有这个整合直接付款来看,结果是急速开发模式,sql都写在类中了,想看配置方式的 大神出一个吧。”粉丝需求,那才是真的需求。好吧,废话太多,不好,不好,还是赶紧进入正题。本节大纲:(1)MyBatis介绍(2)配置思路(3)新建p

需求缘起:
在一节视频中,有这么一段留言:“会不会推出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)测试
接下来看看本节的内容:
(1)MyBatis介绍
来源:MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。
介绍:MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Ordinary Java Objects,普通的Java对象)映射成数据库中的记录。
(2)配置思路
在Spring Boot中使用xml集成MyBatis的话,那么核心的文件就是实体类和SQL的映射类,比如DemoMapper,在此类当中就是普通的接口即可,那么对应SQL配置文件在Demo.xml中,那么要怎么能够识别到DemoMapper类呢,使用@MapperScan();在Demo.xml中使用的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文件添加相关依赖包:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.kfit
spring-boot-mybatis-xml
0.0.1-SNAPSHOT
jar
spring-boot-mybatis-xml
http://maven.apache.org
UTF-8
org.springframework.boot
spring-boot-starter-parent
1.4.1.RELEASE
junit
junit
test
org.springframework.boot
spring-boot-starter-web
mysql
mysql-connector-java
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.0
(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)编写映射接口DemoMapper和xml文件
编写XML文件,Demo.xml:
/p>
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
insert into demo (name) values (#{name})
编写DemoMapper接口:
package com.kfit.demo.mapper;
public interface DemoMapper {
public void save(Demo demo);
}
(8)编写service类DemoService
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)测试
在浏览器可以看到:
{
id:0,
name:"张三"
}
学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!
SpringSecurity5.0视频:http://t.cn/A6ZadMBe
Sharding-JDBC分库分表实战:
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)