从零开始学SpringBoot之Mybatis-注解

2020-03-15  本文已影响0人  Jacky技术分享

​需求来源:

在视频中,有一条消息:“SpringBoot会将mybaits配置文件sqlmapconfig.xml的视频与mapper.xml集成吗?看到直接支付的集成,结果是快速开发模式,SQL是在类中编写的,想看看配置模式之神创建一个吗?”粉丝需要,这才是真正的需要。好吧,胡说太多了,不好,不好。让我们直说重点。

本节概述:

(1) 关于mybatis

(2) 注解思想

(3) 新建项目并添加依赖项包

(4) 创建启动类App.java

(5) 编写实体类演示

(6) 写映射接口DemoMapper

(7) 编写服务类DemoService

(8) 写控制类DemoController

(9) 配置数据库连接池

(10) 测试

让我们来看看这个部分:

(1) 关于mybatis

资料来源:mybatis是Apache和iBatis的一个开源项目。2010年,这个项目从Apache软件基金会迁移到Google代码中,并重命名为mybatis。2013年11月搬到GitHub。

简介:mybatis是一个优秀的持久层框架,支持常见的SQL查询、存储过程和高级映射。Mybatis几乎消除了JDBC代码和参数的所有手动设置以及结果集的检索。Mybatis使用简单的XML或注释进行配置和原始映射,将Java的接口和POJOs(普通Java对象)映射到数据库中的记录。

(2) 注解思想

当spring boot使用注解集成Mybatis,核心文件是实体类和SQL映射类,比如DemoMapper,它是方法和相应的注释SQL语句。在spring boot中,如何识别DemoMapper类特别简单。将注释@MapperScan(指定映射程序包路径)添加到启动类应用程序。

(3) 新建项目并添加依赖项包

新项目名为SpringBootMybatis。

要将依赖项包添加到pom.xml文件,请执行以下操作:

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:

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(),它是扫描映射器类,也就是我们编写的SQL类。

(5) 编写实体类演示

实体类中有两个字段:ID和name:

Java代码

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注释:

Java代码

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);

}

注意,这个类是接口,而不是类。

(7) 编写服务类DemoService

Java代码

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;

@事务性//add a transaction

public void save(Demo demo){

demoMapper.save(demo);

}

}

(8) 写控制类DemoController

Java代码

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数据库连接:

Properties代码

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

###数据源——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) 确保数据库测试已创建;

(2) 确保创建了表演示,并且表创建语句如下所示:

Sql代码

CREATE TABLE  demo (

id  int  NOT NULL AUTO_INCREMENT ,

name  varchar(100) NULL ,

PRIMARY KEY (id)

);

访问后,您将在浏览器端看到数据:

{“Id”:0,“name”:“Zhang San”}

当然,最重要的是检查数据库中是否有更多的数据,这是王道。

好吧,祝你们好运。下一篇文章将介绍Mybatis-注解-自增ID

转载自公众号[SpringBoot],作者悟纤

【Java全栈技术分享】,作者Jacky

上一篇下一篇

猜你喜欢

热点阅读