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")

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是整合Jedis的步骤: 1. 添加Jedis依赖 在 pom.xml 文件中添加 Jedis 的依赖: ``` <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.0.1</version> </dependency> ``` 2. 配置Jedis连接池 在 Spring Boot 中,可以在 application.properties 文件中配置 Jedis 连接池相关的信息。例如: ``` # Redis spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= spring.redis.database=0 # jedis pool config spring.redis.jedis.pool.max-active=8 spring.redis.jedis.pool.max-idle=8 spring.redis.jedis.pool.max-wait=-1ms spring.redis.jedis.pool.min-idle=0 ``` 3. 创建Jedis实例 在需要使用 Jedis 的类中,可以通过以下方式创建 Jedis 实例: ``` @Component public class RedisUtil { @Autowired private JedisPool jedisPool; public Jedis getJedis() { return jedisPool.getResource(); } public void close(Jedis jedis) { if (jedis != null) { jedis.close(); } } } ``` 这里使用了 Spring Boot 的依赖注入机制,通过注入 JedisPool 对象来获取 Jedis 实例。 4. 使用Jedis 通过以上步骤,就可以在项目中使用 Jedis 了,例如: ``` @Autowired private RedisUtil redisUtil; public void set(String key, String value) { Jedis jedis = null; try { jedis = redisUtil.getJedis(); jedis.set(key, value); } finally { redisUtil.close(jedis); } } public String get(String key) { Jedis jedis = null; try { jedis = redisUtil.getJedis(); return jedis.get(key); } finally { redisUtil.close(jedis); } } ``` 以上代码中,通过 RedisUtil 工具类获取 Jedis 实例,并使用该实例进行 Redis 操作。操作完成后,需要手动关闭 Jedis 连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值