SSM整合問題清單

SSM整合問題清單

SSM其實使用很簡單。但是初次整合其實還挺麻煩,因爲平時也不做這個。然後就會有各種問題
SSM框架——詳細整合教程(Spring+SpringMVC+MyBatis) 這是人家寫的一篇博客,我參照這個整合的。但是實際有些東西不一樣

地址 我這個還沒結束。功能還沒有。後續會持續更新

git clone https://gitee.com/dengtiantian/javaee_study.git

本篇博客是我遇到的問題清單
我是用IDEA,maven 搭建的

  1. ERROR com.alibaba.druid.pool.DruidDataSource - {dataSource-1} init error java.sql.SQLException: com.mysql.cj.jdbc.Driver

我發生這個的原因是沒有導入MySQL-connector包.我以爲導入了Spring-jdbc就可以了。修改方法就是在pom.xml添加這個包.讓maven導入

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.19</version>
    </dependency>
  1. No constructor found in com.code.pojo.UserAccount matching [java.lang.Integer, java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.sql.Timestamp]

我發生這個問題的原因是UserAccount裏面沒有無參構造函數(因爲我自己寫了個構造函數,所以系統不會自動生成無參構造函數) 解決辦法:添加構造函數

  1. Cause: org.apache.ibatis.builder.BuilderException: Mapper’s namespace cannot be empty

前面其實還有一大段,但是就是這個引起的,看報錯要先看第一個報錯,第一個報錯裏面可能是好多錯誤原因,從最後一個開始看。因爲解決了一個,可能都是由那個引起的。如題目,是namespace爲空引起的。因爲我的mapper不是自動生成,是我自己寫的。有些就漏掉了 解決辦法:添加namespace

<mapper namespace="com.code.dao.IUserAccountDao" >
  1. Invalid bound statement (not found): com.code.dao.IUserAccountDao.getUserAccountById

三步教你解決Invalid bound statement (not found): com.xxx.dao.xxxDao.selectByxx錯誤!!!很簡單

我的方式是檢查了下applicationContext.xml文件這部分內容是否有錯。本來就是映射有問題

    <!-- Mybatis 和 Spring整合,不需要要Mybatis的配置映射文件-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!--掃描com.code包-->
        <property name="typeAliasesPackage" value="com.code.dao"/>
        <!--掃描mapper文件-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>
    <!--Mapper 動態代理,掃描dao接口包-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 給出需要掃描Dao接口包 -->
        <property name="basePackage" value="com.code.dao"/>
        <!-- 注入sqlSessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>
  1. org.apache.ibatis.type.TypeException: Could not resolve type alias

這個問題的原因是 resultMap和resultType問題。檢查下

<select id="getUserAccountById" resultType="com.code.pojo.UserAccount" parameterType="int">
        select id,useraccount,chinesename,password,isdeleted,modifydate from useraccount where id = #{id}
    </select>
  1. 這個錯誤排不上號,但是也是很常見的:就是我查詢的結果發現有個值是null,但是數據庫有數據。

我本來以爲是中文的問題,然後把另外一個值改成中文發現沒問題。然後我仔細看看,後面發現是拼寫錯誤

我的數據庫是chinesename,但是我的實體表是chinesname(少了個e)。這種拼寫錯誤也挺常見。建議裝一個插件:alibaba Java Coding Guidelines。阿里巴巴Java開發規範。不僅僅能檢查拼寫問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章