利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程

时间:2024-05-20 08:10:57

自己搭建springboot+mybatis的项目,对创建项目的过程做一个记录,以便自己后期参考查询,同时将搭建中踩过的坑进行记录,并提供解决办法。如有遇到相同问题的同学,希望能给你做个参考,少点弯路。
springboot的优势之一就是快速搭建项目,省去了自己导入jar包和配置xml的时间,使用非常方便。

一、项目搭建
1.打开IDEA,点击File—>New—>Project…
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
2.选择Project…之后(如下图),选择Spring Initializr ,点击 Next
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程

3.根据自己项目需要进行修改,这里我修改成project,点击Next。这里需要注意,Group和Artifact不能大小写混用,要全部小写,不然会报错哦!!
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
4.在当前页面的左侧依次选择:(1)Web,在中间部分勾选Web;(2)Template Engines,勾选Thymeleaf;(3)SQL,勾选MySQL、JDBC和MyBatis。全部选择完成后,然后点击Next
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程

5.项目创建最后一步,确认项目名称和项目保存的位置,点击Finish,完成项目创建后尽量选择New Window,在新的IDEA中打开我们新建的项目。
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程

二、项目启动
1.打开新项目后,项目结构如下所示
生成的项目中,resources文件夹下,static文件夹下存放静态文件,比如css、js、html和图片等 。templates下存放html文件,controller默认访问该文件夹下的html文件。这个在application.properties配置文件中是可以修改的。
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程

2.当我们尝试启动项目,发现项目启动过程出现错误,如下图。
这是因为我们创建Spring Boot项目时,在选择组件时添加了mysql、mybatis,但现在还没有配置数据库,导致项目启动报错。需要在项目的application.properties文件中配置数据信息。
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程

3.根据自己数据库实际,在application.properties文件中配置数据信息(注意这里mysql.jdbc是红色!报错的!!后面会有解决方案)。
PS:这里也可以不使用application.properties文件,采用更加简洁的application.yml文件。将resource文件夹下原有的application.properties文件删除,创建application.yml配置文件(备注:其实SpringBoot底层会把application.yml文件解析为application.properties)
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程

4.配置成功后,再启动项目,发现项目可以正常启动了。可以打开浏览器访问http://localhost:8080/,访问结果下图所示。证明项目正常启动了。
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
三、项目整合Mybatis
1.先将添加mybatis插件,File—>Settings—>Plugins。我这里是直接在IEDA中安装集成,大家也可以自己下载后安装
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程

在输入框输入“mybatis”,如果有“AutoCurd”,勾选后,点击OK即可。如果没有点击,点击下面的“Search in repositories”,搜索找到之后点击"install"进行安装,并勾选,再点击OK即可。否则自动映射时会报错!说在plugins中找不到“mybaits-generator”。
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
![](https://img-blog.****img.cn/20190325111052139.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODU1NTEwNg==,size_16,color_FFFFFF,t_70
安装后,选择重新启动
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程

2.在application.properties中设置mybatis映射路径

利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
3.在pom.xml中添加 mybatis generator 自动生成代码插件。
(1)添加依赖:先在properties添加,再添加dependency(一般这里的依赖是修改)

<properties>
   		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    	<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    	<java.version>1.8</java.version>
    	<mysql-connector>5.1.39</mysql-connector>
	</properties>
<dependency>
    	<groupId>mysql</groupId>
    	<artifactId>mysql-connector-java</artifactId>
    	<version>${mysql-connector}</version>
	</dependency>

(2)在中添加,mybatis generator 自动映射生成代码

<build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.2</version>
                    <configuration>
                        <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                        <verbose>true</verbose>
                        <overwrite>true</overwrite>
                    </configuration>
                    <executions>
                        <execution>
                            <id>Generate MyBatis Artifacts</id>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <fork>true</fork>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

4.在resource中创建generatorConfig.xml文件(内容如下),用于与数据库表进行相关配置,自动生成实体、Dao层接口和mapper(xml)文件。
需要注意:(1)classPathEntry的location是所引用mysql-connector-java-5.1.39.jar的全路径
(2)jdbcConnection ,要配置正确的数据连接
(3)javaModelGenerator 、sqlMapGenerator和javaClientGenerator中targetPackage(目标文件夹)、targetProject(目标项目路径),一定要细心,不然会出错。这里配置好targetPackage,IDEA中的目录结构就会在java和resource自动生成entity和mapper文件夹,不用自己创建!
(4)在table中,因为是单项目,所以可以省略schem,如果是多个项目模块,则不能省略


<?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>
    <classPathEntry     location="C:\Users\123\.m2\repository\mysql\mysql-connector-java\5.1.39\mysql-connector-java-5.1.39.jar"/>
    <context id="my" targetRuntime="MyBatis3" defaultModelType="flat">
        <commentGenerator>
            <property name="suppressDate" value="false"/>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://3306/prject" 
                        userId="root"
                        password="123456"/>
        <javaModelGenerator targetPackage="com.project.entity"
                            targetProject="D:\project\src\main\java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <sqlMapGenerator targetPackage="com.project.mapper"
                         targetProject="D:\project\src\main\resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <javaClientGenerator targetPackage="com.project.mapper"
                             targetProject="D:\project\src\main\java" type="XMLMAPPER">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <table  tableName="data_tag_config" domainObjectName="TagConfig" >
            <generatedKey column="location_id" sqlStatement="MySql" identity="true"/>
        </table>
    </context>
</generatorConfiguration>

5.再进行简单配置,以运行生成这个过程共生成三个文件,一个entity,dao,xml文件
(1)下拉选择Edit Configurations…
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
(2)点击左上角“+”,选择Maven
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
(3)name建议以实体类命名,点击OK
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
(4)点击运行,进行自动映射生成代码,生成4个文件如左侧目录所示。
这里需要注意的几点:(1)自动映射时,只能点击一次运行,如只能点击“TagConfig”一次,多次点击时,生成的TgaConfigMapper.xml文件中代码会重复,运行调用时报错。如果点击多次后,需要将已生成的各文件删除,重新运行生成需要的文件。
(2)自动生成映射时的和运行时的名称是不一样的,如果要运行项目,则要点击下拉切换到项目名,再点击运行,

利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
四、常见错误及解决方案
1.在application.properties中,“mysql.jdbc”红色显示报错。解决方案:要在pom.xml文件中配置MySQL驱动器!切记,配置好pom.xml之后,一定要利用maven更新依赖,不然红色还会一直在!
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程

第一步:配置properties中 mysql-connector

<properties>
   		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    	<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    	<java.version>1.8</java.version>
    	<mysql-connector>5.1.39</mysql-connector>
	</properties

第二步:建立MySQL 连接驱动依赖,注意此时必须为<version>${mysql-connector}</version>,如果是<scope>runtime</scope>会报错!!

<dependency>
    	<groupId>mysql</groupId>
    	<artifactId>mysql-connector-java</artifactId>
    	<version>${mysql-connector}</version>
	</dependency>

利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
1.当报“Communications link failure”错误时,说明数据库连接错误,查看generatorConfig.xml 和application.properties中数据库连接配置是否正确。
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程
利用IDEA搭建SpringBoot项目,整合mybatis,实现自动映射全过程