SpringBoot集成MyBatis(iBatis)
最近也是在写安卓的登陆注册作业,需要一个后台,这样方便点,开始用的是SpringMVC+Hibernate。但再搭建完之后发现配置啥的都挺多,于是使用了SpringBoot+MyBatis。这里记录一下详细步骤。
1.首先需要创建一个spring boot项目。
首先New一个Module
之后下一步,之后设置项目名以及包名,Java版本选的8
下一步之后选择SpringWeb,因为需要通过url访问并且返回一些json数据,选择这个才行,它会帮我们自己拉去依赖。
之后下一步就行,到这里就成功创建了一个Springboot项目。
之后进入pom里面查看,里面有了springweb的起步依赖以及测试依赖。
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.基本信息配置,之后在这个配置文件里面写连接数据库的信息。*
#连接数据库信息#时区注意配置
#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逆向工程文件)
这是里面的代码
<?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存放的位置。(个人呢建议放一起,看个人习惯吧)
对配置文件的讲解在里面比较详细了,这里面需要仔细填写相关的内容。
例如这个对一个表的配置,表名为android_user,生成的实体类名为user
4.利用插件生成对应的实体类和mapper文件。*
找到右侧maven管理工具
然后找到对应的插件,点击之后就会生成对应的文件了。
之后可以看到生成了对应的文件。
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这里就不在详细描述了,如果有问题的话可以联系作者。