服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - Java教程 - springboot整合mybatis中的问题及出现的一些问题小结

springboot整合mybatis中的问题及出现的一些问题小结

2021-06-15 10:20King丶Star Java教程

这篇文章主要介绍了springboot整合mybatis中的问题及出现的一些问题小结,本文给出了解决方案,需要的朋友可以参考下

1.springboot整合mybatis mapper注入时显示could not autowire,如果强行写(value  = false ),可能会报nullpointexception异常

解决方案:

dao层加注解@component(value = "首字母小写的接口名如usermapper->usermapper")

dao层还可以加注解@mapper

2.the server time zone value 'öð¹ú±ê׼걼ä' is unrecognized or represents more than one time zone问题

springboot整合mybatis中的问题及出现的一些问题小结

3.java.lang.illegalargumentexception: defaultserializer requires a serializable payload but received an object of type[xxx]

解决:实体对象类没有序列化,需要implements serializable

ps:下面看下springboot整合mybatis出现的一些问题

springboot整合mybatis非常非常的简单,简直简单到发指。但是也有一些坑,这里我会详细的指出会遇到什么问题,并且这些配置的作用

整合mybatis,无疑需要mapper文件,实体类,dao层,数据库连接池。。。。。也就没了。

先放配置application.yml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
spring:
 datasource:
  type: com.alibaba.druid.pool.druiddatasource
  driver-class-name: com.mysql.jdbc.driver
  filters: stat
  maxactive: 20
  initialsize: 1
  maxwait: 60000
  minidle: 1
  timebetweenevictionrunsmillis: 60000
  minevictableidletimemillis: 300000
  validationquery: select 'x'
  testwhileidle: true
  testonborrow: false
  testonreturn: false
  poolpreparedstatements: true
  maxopenpreparedstatements: 20
  
  name: test
  url: jdbc:mysql://localhost:3306/mama-bike?useunicode=true&characterencoding=utf-8&zerodatetimebehavior=converttonull
  username: root
  password: root
 
mybatis:
 #告诉spring你的mapper的位置。
 mapper-locations: classpath:com/coder520/mamabike/**/**.xml
 #告诉spring你的实体类的位置
 type-aliases-package: classpath:com.coder520.mamabike.**.entity
 
logging:
 config: classpath:logback.xml

dao层接口      //就简单的写一个方法

?
1
2
3
public interface usermapper {
 int insert(user record);
}

mapper

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8" ?>
<!doctype mapper public "-//mybatis.org//dtd mapper 3.0//en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.coder520.mamabike.user.dao.usermapper" >
 <resultmap id="baseresultmap" type="com.coder520.mamabike.user.entity.user" >
 <id column="id" property="id" jdbctype="bigint" />
 <result column="nickname" property="nickname" jdbctype="varchar" />
 <result column="enable_flag" property="enableflag" jdbctype="tinyint" />
 <result column="verify_flag" property="verifyflag" jdbctype="tinyint" />
 <result column="head_img" property="headimg" jdbctype="varchar" />
 <result column="mobile" property="mobile" jdbctype="varchar" />
 </resultmap>
 <sql id="base_column_list" >
 id, nickname, enable_flag, verify_flag, head_img, mobile
 </sql>
 <insert id="insert" parametertype="com.coder520.mamabike.user.entity.user" >
 insert into user (id, nickname, enable_flag,
  verify_flag, head_img, mobile
  )
 values (#{id,jdbctype=bigint}, #{nickname,jdbctype=varchar}, #{enableflag,jdbctype=tinyint},
  #{verifyflag,jdbctype=tinyint}, #{headimg,jdbctype=varchar}, #{mobile,jdbctype=varchar}
  )
 </insert>
</mapper>

main方法

?
1
2
3
4
5
6
7
8
@springbootapplication
@componentscan(basepackages={"com.coder520.mamabike"})
@mapperscan(basepackages="com.demo.user.mapper")
public class mamabikeapplication {
 public static void main(string[] args) {
  springapplication.run(mamabikeapplication.class, args);
 }
}

需要注意的是,dao层接口spring怎么会知道呢?这里就需要@mapperscan(basepackages="com.demo.user.mapper") 这个注解来指定mapper接口的位置。用@componentscan(basepackages={"com.coder520.mamabike"})这个注解来让spring扫描我们指定包下的注解。

如果我们不用@mapperscan这个注解的话,也可以在接口类的上方加上@mapper这个注解也可以。

总结

以上所述是小编给大家介绍的springboot整合mybatis中的问题及出现的一些问题小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:https://blog.csdn.net/qq_41602595/article/details/84316153

延伸 · 阅读

精彩推荐
  • Java教程Java中常用加密/解密方法详解

    Java中常用加密/解密方法详解

    本文主要介绍了Java中常用加密/解密方法。具有很好的参考价值,下面跟着小编一起来看下吧...

    Tancky_Cliff4812020-08-13
  • Java教程Java Base64解码错误及解决方法

    Java Base64解码错误及解决方法

    本篇文章给大家从一个Java Base64解码错误着手给大家分析了错误的原因以及解决办法,有兴趣的可以参考学习下。...

    Java教程网11762021-04-05
  • Java教程java实现线性表及其算法

    java实现线性表及其算法

    线性表是最简单和最常用的一种数据结构,它是有n个体数据元素(节点)组成的有限序列,这篇文章主要介绍了java实现线性表及其算法,小编觉得挺不错...

    博弈5342021-05-06
  • Java教程Java开始没落了吗?学Java真的没前途了吗?

    Java开始没落了吗?学Java真的没前途了吗?

    随着大数据人工智能的潮流,python已经被炒作的天翻地覆,其学习用户数量逐渐上升,许多人暗自担心Java技术是否会在未来几年就沉寂了?难道要跟随大流...

    今日头条7332021-04-14
  • Java教程基于jvm java内存区域的介绍

    基于jvm java内存区域的介绍

    下面小编就为大家带来一篇基于jvm java内存区域的介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Java教程网5222020-11-23
  • Java教程Java反射之类的实例对象的三种表示方式总结

    Java反射之类的实例对象的三种表示方式总结

    下面小编就为大家带来一篇Java反射之类的实例对象的三种表示方式总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看...

    jingxian2062020-06-20
  • Java教程详解Java 信号量Semaphore

    详解Java 信号量Semaphore

    这篇文章主要介绍了Java 信号量Semaphore的相关资料,帮助大家更好的理解和学习Java并发,感兴趣的朋友可以了解下...

    java小新人4792020-09-15
  • Java教程log4j的Appenders配置方法

    log4j的Appenders配置方法

    下面小编就为大家带来一篇log4j的Appenders配置方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Java之家2242020-09-22