springboot整合mybatis中的問題及出現(xiàn)的一些問題小結
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出現(xiàn)的一些問題
springboot整合mybatis非常非常的簡單,簡直簡單到發(fā)指。但是也有一些坑,這里我會詳細的指出會遇到什么問題,并且這些配置的作用
整合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
<?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方法
@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中的問題及出現(xiàn)的一些問題小結,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
IntelliJ IDEA中Project與Module的概念以及區(qū)別
這篇文章主要給大家介紹了關于IntelliJ IDEA中Project與Module的概念以及區(qū)別的相關資料,文中通過實例介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
關于IDEA報錯Error:java 不支持發(fā)行版本17的原因及解決方案
在rebuild或運行項目時提示“Error:java: 錯誤: 不支持發(fā)行版本 17”,本文將給大家介紹了IDEA提示“Error:java: 錯誤: 不支持發(fā)行版本17”的原因及解決方案,需要的朋友可以參考下2023-09-09
Spring Cloud學習教程之Zuul統(tǒng)一異常處理與回退
Spring Cloud Zuul對異常的處理整體來說還是比較方便的,流程也比較清晰,下面這篇文章主要給大家介紹了關于Spring Cloud學習教程之Zuul統(tǒng)一異常處理與回退的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2018-04-04

