SpringBoot 零基础学习过程(三)mybatis数据库简单操作

通过上两章可以进行项目搭建、基础项目配置

本章我们主要是通过springboot+mybatis实现数据的插入和查询,删除和更新没有具体实现,大家可以自己动手试一下

主意:这个demo没有使用传统的mapper.xml配置模式,引入了tk.mybatis,所以如果你是一个使用传统mybatis的有可能有些差异,不过大同小异只不过是写法不一样而已。

1.管理创建项目、配置环境(只是一个小demo,没有写完整的配置信息,如果有需要完整配置大家可以看上一章的多环境配置信息)

主要列出了数据库的配置信息、mybatis扫描xml(具体没用用到)和实体的路径了,由于配置项比较简单就不贴代码了

SpringBoot 零基础学习过程(三)mybatis数据库简单操作2.在项目启动中定义扫描mapper目录(考虑这个mapper和上面的xml配置是不是有些重复?大神可以评论一下)SpringBoot 零基础学习过程(三)mybatis数据库简单操作

3.创建我们的实体类和mapper文件

实体类,引入了lombok包,主要可以省略一些get、set操作,这个包还有更强大的功能,有需要的大家可以继续尝试一下发掘;

SpringBoot 零基础学习过程(三)mybatis数据库简单操作

mapper bean 定义,一个简单的操作,发现insert没有返回添加的主键,还是单独写了一个获取上一次插入id的方法,比较笨觉得,等待下个版本的demo升级吧。

SpringBoot 零基础学习过程(三)mybatis数据库简单操作

4.为了配合公司三层结构的规则,提前加了一层service,大家也可以不写,不过建议还是通过controller调用service,再由service调用实际的mapper或者其他业务

定义了个接口,本想把这个接口定义成公共的一些操作,但是没有特别好的想法(笨),先暂时这样定义吧。。

SpringBoot 零基础学习过程(三)mybatis数据库简单操作

service bean定义,并实现接口,进行实际的业务处理(就是简单地查询、插入。。。)

SpringBoot 零基础学习过程(三)mybatis数据库简单操作

5.最后由控制器调用方法

SpringBoot 零基础学习过程(三)mybatis数据库简单操作

最后贴出pom.xml的加载项

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.dreamplus</groupId>
    <artifactId>jdbc</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>jdbc</name>
    <description>springboot jdbc demo</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

        <!-- Spring Boot Web 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <!-- Spring Boot entity省略get、set -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.18</version>
            <scope>provided</scope>
        </dependency>

        <!--mybatis通用mapper依赖-->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.0.2</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

这个里面重点就是mysql、mysql连接池、mybatis、lombok、tk.mybatis(主要是有他的存在,才可以不使用原始的xml定义方式,不过个人觉得还是不够强大,等待后续挖掘吧)

通过这一章可以实现最起码的业务开发,但是实际的业务还是要比这个繁琐很多,包括异常处理、筛选器、返回数据统一等等,我们慢慢来完善它,就算整理到了线上的业务,也是有可以优化的,学无止境,没有最好嘛。

下一章准备优化mapper的操作,感觉目前的操作过于啰嗦,写一个相对完整的小业务出来。