美文网首页
从零开始学SpringBoot之Mybatis-注解

从零开始学SpringBoot之Mybatis-注解

作者: Jacky技术分享 | 来源:发表于2020-03-15 16:22 被阅读0次

    ​需求来源:

    在视频中,有一条消息:“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

    相关文章

      网友评论

          本文标题:从零开始学SpringBoot之Mybatis-注解

          本文链接:https://www.haomeiwen.com/subject/olesehtx.html