springboot2.1.1整合mybatis

最好从建立项目时,就使用spring工具进行相关配置属性的设置,这里采用的是通过手动修改pom.xml文件的方式进行配置,所以遇到的问题也比较多。

1. pom.xml中添加依赖和插件

        <dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.0</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.6</version>
		</dependency>
		
		<!-- 分页插件 -->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.1.2</version>
		</dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

		<!-- alibaba的druid数据库连接池 -->
        <!--
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.0</version>
		</dependency>
        -->


            <!-- mybatis generator 自动生成代码插件 -->
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.2</version>
				<configuration>
					<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
					<overwrite>true</overwrite>
					<verbose>true</verbose>
				</configuration>
			</plugin>

2. application.properties配置

#数据源配置
spring.datasource.name=test
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test
spring.datasource.username=root
spring.datasource.password=root

# 使用druid数据源
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# 注意:一定要对应mapper映射xml文件的所在路径
mybatis.mapper-location=classpath:com.test.dbtest.mapper/*.xml
 # 注意:对应实体类的路径
mybatis.type-aliases-package=com.test.dbtest.entity  

#pagehelper分页插件
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

eclipse中使用generator生成mybatis文件,需要安装插件mybatis generator。

 错误:Unknown character set: 'utf8mb4'

采用mysql-connector-java-5.1.6-bin.jar版本的包后,错误消失了。

需要注意的是,涉及到两个文件中,一个是generatorConfig.xml文件中的配置:

<classPathEntry  location="D:\workspace\demo\lib\mysql-connector-java-5.1.6-bin.jar"/>

另一个是pom.xml文件中的配置:

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

只修改一个地方不会生效。

数据库是Mysql 6.0版本。

尝试过的mysql-connector版本包括:mysql-connector-java-5.1.47-bin.jar,mysql-connector-java-5.1.7-bin.jar,mysql-connector-java-5.1.25-bin.jar,connector-java-5.1.35-bin.jar。

出现错误:project src does not exist

应将generatorConfig.xml文件中的配置做如下修改:

将targetProject="./src/main/java" 改为 targetProject="[project name]/src/main/java"

通过注解添加扫描:

@MapperScan("com.test.dbtest.dao")

通过配置文件application.properties添加扫描:

mybatis.mapper-location=classpath:com.test.dbtest.mapper/*.xml

错误提示:

Caused by: java.lang.ClassNotFoundException: org.springframework.boot.bind.RelaxedDataBinder

boot.bind下找不到RelaxedDataBinder这个方法,查看API发现,这个org.springframework.boot.bind 包已经删掉了,导致RelaxedPropertyResolver这个方法已经不可用了.

这是spring boot 2.x.x整合使用alibaba的druid数据库连接池,com.github.pagehelper的分页插件,启动项目报错。

解决方法有两种,第一是放弃druid,直接使用jdbc连接,第二中是使用springboot2.x.x以下的版本。

第一种方法:

pom.xml文件修改

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
application.properties配置修改:

driver-class-name: com.mysql.jdbc.Driver

解决方案二,springboot版本修改为1.5.x

pom.xml文件修改

       <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.0</version>
        </dependency>

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.1.2</version>
        </dependency>

application.properties配置修改:

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

遇到过的坑:

1. Controller写错包名导致没有扫描到包或者没有配置扫描包路径导致无法访问,Application启动类放置在上层目录,并且在启动类中添加扫描包的注解;@ComponentScan(basePackages = {"com.test.dbtest"})

2. 没有配置mapper扫描导致找不到dao;@MapperScan("com.test.dbtest.dao")

3. 配置的mybatis的xml文件位置属性名称错误,少了一个s,把mybatis.mapper-locations写成mybatis.mapper-location了;

mybatis.mapper-locations=classpath:com/test/dbtest/mapper/*.xml

4. Service实现类没有添加注解@Service(value = "userService")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值