SpringBoot集成MyBatis(iBatis)

2年前 (2023) 程序员胖胖胖虎阿
174 0 0

SpringBoot集成MyBatis(iBatis)

    最近也是在写安卓的登陆注册作业,需要一个后台,这样方便点,开始用的是SpringMVC+Hibernate。但再搭建完之后发现配置啥的都挺多,于是使用了SpringBoot+MyBatis。这里记录一下详细步骤。

1.首先需要创建一个spring boot项目。

首先New一个Module
SpringBoot集成MyBatis(iBatis)
之后下一步,之后设置项目名以及包名,Java版本选的8
SpringBoot集成MyBatis(iBatis)
下一步之后选择SpringWeb,因为需要通过url访问并且返回一些json数据,选择这个才行,它会帮我们自己拉去依赖。
SpringBoot集成MyBatis(iBatis)
之后下一步就行,到这里就成功创建了一个Springboot项目。
之后进入pom里面查看,里面有了springweb的起步依赖以及测试依赖。
SpringBoot集成MyBatis(iBatis)

2.添加依赖以及插件*

由于使用的是Mysql以及Mybatis,所以需要添加Mysql和mybatis的依赖。
添加如下依赖

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

        <!--MyBatis整合springboot起步依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.1</version>
        </dependency>

后面由于要使用插件生成实体bean以及mapper文件着一些,所以还需要在pom里面的插件添加如下代码。

          <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
            <configuration>
                <!--允许移动生成的文件 -->
                <verbose>true</verbose>
                <!-- 是否覆盖 -->
                <overwrite>false</overwrite>
                <!-- 自动生成的配置 -->
                <configurationFile>mybatis-generator.xml</configurationFile>
            </configuration>
            </plugin>

mybatis-generator.xml这个里面的文件需要自己写,在下面进行讲解。文件名也需要和下面的xml配置文件名称一样。

3.基本信息配置,之后在这个配置文件里面写连接数据库的信息。*

SpringBoot集成MyBatis(iBatis)

#连接数据库信息#时区注意配置
#MySQL6以上就要使用com.mysql.cj.jdbc,Driver
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#这里是连接MySQL,端口号,springjdbc为数据库名,后面为一些基本配置,一般都需要。
spring.datasource.url=jdbc:mysql://localhost:3306/springjdbc?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
#下面是连接数据库的用户名和密码
spring.datasource.username=root
spring.datasource.password=niit1234


mybatis-generator.xml
由于这里面引用了配置文件,所以需要在项目根目录下面创建配置文件(Mybatis逆向工程文件)
SpringBoot集成MyBatis(iBatis)
这是里面的代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!--mysql 连接数据库jar 这里选择自己本地位置-->
    <classPathEntry
            location="E:\java\springboot\mysql-connector-java-5.1.46.jar"/>
    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:-->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/springjdbc?serverTimezone=UTC" userId="root"
                        password="niit1234">
        </jdbcConnection>
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
           NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- targetProject:生成PO类的位置,这个单独放         接口和xml要放在一个地方-->
        <javaModelGenerator targetPackage="com.entity"
                            targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置
           如果maven工程只是单独的一个工程,targetProject="src/main/java"
           若果maven工程是分模块的工程,targetProject="所属模块的名称",例如:
           targetProject="ecps-manager-mapper",下同-->
        <sqlMapGenerator targetPackage="com.mapper"
                         targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.mapper"
                             targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        <!-- 指定数据库表  多个表,可用多个table标签-->
        <table tableName="android_user" domainObjectName="user"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>
    </context>
</generatorConfiguration>

这里面需要注意填写的是:Url以及用户名和密码,还需要mysql的jar包位置,还有实体bean,mapper和mapper.xml的位置。需要注意的是,最好将mapper和mapper.xml放在一起,这样不会出错。
如果想要将mapper.xml放在其他地方,需要在application.properties文件里面书写mybatis.config-location,在这里面填入mapper.xml存放的位置。(个人呢建议放一起,看个人习惯吧)SpringBoot集成MyBatis(iBatis)

对配置文件的讲解在里面比较详细了,这里面需要仔细填写相关的内容。
SpringBoot集成MyBatis(iBatis)

例如这个对一个表的配置,表名为android_user,生成的实体类名为user

4.利用插件生成对应的实体类和mapper文件。*

找到右侧maven管理工具
SpringBoot集成MyBatis(iBatis)
然后找到对应的插件,点击之后就会生成对应的文件了。
SpringBoot集成MyBatis(iBatis)
之后可以看到生成了对应的文件。
SpringBoot集成MyBatis(iBatis)

5.配置资源位置*

在生成文件之后,因为在使用注解的时候,会用到mapper.xml资源文件。但是它没有在resource中,所以我在pom里面添加了如下代码。将src/main/java也注册为资源文件,这样在扫描时就会找到它。因为添加了这个资源文件之后,原来的资源文件位置就会被取消,所以在这里也需要添加进去。

<resources>
            <resource>
                <filtering>true</filtering>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>

大致思路以及步骤都已完成,接下来要实现的逻辑以及Controller这里就不在详细描述了,如果有问题的话可以联系作者。

版权声明:程序员胖胖胖虎阿 发表于 2023年3月20日 下午6:24。
转载请注明:SpringBoot集成MyBatis(iBatis) | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...