SpringBoot + Mybatis初探

作者: BBH_Life | 来源:发表于2018-08-24 11:09 被阅读3次

    前言

    整个SpringBoot非常方便的可以实现Restful服务,然而在实际的应用中,实现Restful服务只是表面,如果需要运营起来,需要数据层的支持。目前服务端的数据层包括关系型数据库例如MySQL与非关系型数据库例如MangoDB。非关系型数据库可能更加方便实现对象存储,对应用编码更加方便,但是对底层存储的理解不利,所以在刚开始还是推荐使用关系型数据库。
    这里我们将使用SpringBoot的Restful项目来结合Mybatis来实现一个有数据存储的Restful服务。

    Mybatis是什么?

    这里是Mybatis的介绍
    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
    简言之:MyBatis可以方便的帮助JAVA应用使用关系型数据库。

    写代码之前

    在实际代码之前,我们需要给项目配置Mybatis,这里的项目管理使用的maven管理,有一个pom.xml来管理依赖,所以我们开始吧:
    给项目加入MyBatis依赖

    <!--加入mybatis的支持-->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.1.1</version>
    </dependency>
    

    给项目加入MySQL连接的依赖

    <!--加入mysql connector-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>
    

    在加入依赖之后,需要做的是首先是配置数据库端口和用户
    当然,我这里使用的是MySQL来作为数据库。端口是3306,用户是root。

    所以开始配置:
    这里是一个参考
    这里是一个更好的参考
    完成数据库相关配置之后,我们需要在Spring项目中完成数据库的连接配置,不然Spring如何知道该连接哪个数据库呢。

    • 在application.properties中添加下面的数据(如果没有改文件,请在java平级建立一个resource文件夹下新建一个改文件)
    server.port=5000
    ########################################################
    ###datasource
    ########################################################
    spring.datasource.url = jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=UTF-8
    spring.datasource.username = root
    spring.datasource.password = seven107001
    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
    

    然后SpringBoot就知道用什么(依赖)去连接哪个数据库(配置)了。

    开始编码吧!

    我们在源代码里面加入dao层,并加入一个Mapper。(注意mapper是一个Interface)


    屏幕快照 2018-08-24 上午10.53.11.png
    package blog.dao;
    
    import blog.domain.BlogItem;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Mapper;
    import org.apache.ibatis.annotations.Param;
    import org.apache.ibatis.annotations.Select;
    
    import java.util.LinkedList;
    
    @Mapper
    public interface BlogMapper {
        @Select("SELECT * FROM blogs")
        LinkedList<BlogItem> getAllBlogItem();
    
        @Insert("INSERT INTO blogs (title, subTitle, summary, content, dateString) VALUES(#{title}, #{subTitle}, #{summary}, #{content}, #{dateString})")
        int insert(@Param("title") String title,
                   @Param("subTitle") String subTitle,
                   @Param("summary") String summary,
                   @Param("content") String content,
                   @Param("dateString") String dateString);
    }
    

    是不是很简单,我们已经用注释的方式完成了从数据库获取和插入的操作。

    测试

    1. 新建一个Test文件,并在类上加注释:
    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = App.class, webEnvironment = SpringBootTest.WebEnvironment.**RANDOM_PORT**)
    

    因为使用SpringBoot来跑,所以这里测试需要有一个Application类传入,随机端口。

    1. 然后在类中加入一个自动注入的Mapper:
    @Autowired
    private BlogMapper mapper;
    

    这时候mapper我们就不需要自己去初始化了,毕竟自动注入

    1. 最后我们写一个测试方法吧:
    @Test
    public void testInsertBlog() {
        mapper.insert("标题", "副标题", "总结", "主要内容", "一小时以前");
    }
    

    这里我们测试了插入,如果是数据库本身配置没有问题的话,就已经完成了SpringBoot对数据库的操作了。

    结语

    其实Spring+Mybatis真的不难,在做之前感觉挺复杂畏难心理,实际做的时候发现和iOS数据库操作基本一致,基本都是三步:加入依赖,连接,写很容易理解的代码。

    相关文章

      网友评论

        本文标题:SpringBoot + Mybatis初探

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