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

网友投稿 289 2023-01-18


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问题

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

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层接口      //就简单的写一个方法

public interface UserMapper {

int insert(User record);

}

mapper

id, nickname, enable_flag, verify_flag, head_img, mobile

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}

)

main方法

@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中的问题及出现的一些问题小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:实现接口和调用接口(接口可以调用接口吗)
下一篇:Java获取当前时间年月日的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~