134. [视频]Spring Boot MyBatis升级篇-注解【从零开始学Spring Boot】

 

 

【视频 & 交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

扫描二维码关注公众号,回复: 327218 查看本文章

【本篇博客,有配套视频,视频地址:《 Spring Boot MyBatis升级篇-注解,公众号中点击下面的阅读原文,视频中讲解的更详细】

需求缘起:

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

 

本节大纲:

(1)MyBatis介绍
(2)注解思路
(3)新建project以及添加依赖包
(4)创建启动类App.java
(5)编写实体类Demo
(6)编写映射接口DemoMapper
(7)编写service类DemoService
(8)编写控制类DemoController
(9)配置数据库连接池
(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中使用注解集成MyBatis的话,那么核心的文件就是实体类和SQL的映射类,比如DemoMapper,在此类当中就是方法和对应的注解sql语句,那么要怎么能够识别到DemoMapper类呢,在Spring Boot中就特别的简单,在启动类App中加入一个注解@MapperScan(指定Mapper包路径)

 

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

       新建工程取名为spring-boot-mybatis

       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</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
 
  <name>spring-boot-mybatis</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>

 

       在这里主要引入Spring Boot的相关的依赖包,MySQL数据库驱动,spring boot mybatis依赖包。这里需要注意版本号,1.0.0的版本还不支持拦截器插件。

 

4)创建启动类App.java

       创建启动类App.java

package com.kfit;
 
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication
@MapperScan("com.kfit.*.mapper")
public class App {
    public static void main(String[] args) {
       SpringApplication.run(App.class, args);
    }
}

 

       这里要注意的一个注解是@MapperScan(),这个就是扫描Mapper类,也就是我们编写的SQL类。

 

5)编写实体类Demo

       实体类中就两个字段,idname

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

 

 

(6)编写映射接口DemoMapper      

这个类就是对应的SQL注解:

package com.kfit.demo.mapper;
 
import org.apache.ibatis.annotations.Insert;
import com.kfit.demo.bean.Demo;
 
public interface DemoMapper {
   
    @Insert("insert into Demo(name) values(#{name})")
    public void save(Demo demo);
   
}

 

       注意这个类是interface而不是class

 

7)编写serviceDemoService

package com.kfit.demo.service;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
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);
    }
   
}

 

 

8)编写控制类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;
   
    @RequestMapping("/save")
    public Demo save(){
       Demo demo = new Demo();
       demo.setName("张三");
       demoService.save(demo);
       return demo;
    }
   
}

 

 

9)配置数据库连接池

application.properties中配置MySQL数据库连接:

########################################################
###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

 

 

10)测试

       好了,到这里就可以启动App.java进行访问测试了,访问地址:

http://127.0.0.1:8080/save

在访问之前需要注意:

1)确保创建了数据库test

2)确保创建了表Demo,建表语句如下:

CREATE TABLE  demo (
id  int  NOT NULL AUTO_INCREMENT ,
name  varchar(100) NULL ,
PRIMARY KEY (id)
);

 

       访问之后,在浏览器端会看到数据:

{"id":0,"name":"张三"}

 

当然最主要的是查看数据库中是否多了条数据,这才是王道。

       好了,祝大家好运,一次搞定。下篇博客接着MyBatis:《Spring Boot MyBatis升级篇-注解-自增ID

 

视频&交流平台

à SpringBoot网易云课堂视频

http://study.163.com/course/introduction.htm?courseId=1004329008

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

 

 

 

猜你喜欢

转载自412887952-qq-com.iteye.com/blog/2389426