1. 程式人生 > >為工作室搬磚出現的一些錯誤

為工作室搬磚出現的一些錯誤

剛剛解決的一個錯誤  

主要是 mybatis 一條insert select update delete 中不能出現兩種不同的sql語句 出現就會報錯 

看下面  之前我將兩條語句寫在一起 找了好久好久的錯 心累 。。。

     <insert id="insertApplyTime" parameterType="com.zy.website.pojo.ApplyTime">
        insert into applytime (adminName , alterTime , beforeTime , afterTime)
        values ( #{adminName} , #{alterTime} , #{beforeTime} , #{afterTime} )
    </insert>
    <select id="getApplyTime" resultType="com.zy.website.pojo.ApplyTime">
        select * from applytime limit 1;
    </select>

另外關於型別一定要匹配 

1、確定資料庫型別一定是 大寫的 。而且不是所有的java資料型別都有相應的對應 需要去百度找找 。

2、傳入的引數一定要是全稱的 否則mybatis反射不到的,還有返回資料型別 一定要是全稱 然後需要返回ArrayList HashMap 最好先配置 如下配置 : 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <typeAlias alias="Integer" type="java.lang.Integer" />
        <typeAlias alias="Long" type="java.lang.Long" />
        <typeAlias alias="HashMap" type="java.util.HashMap" />
        <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
        <typeAlias alias="ArrayList" type="java.util.ArrayList" />
        <typeAlias alias="LinkedList" type="java.util.LinkedList" />
    </typeAliases>
</configuration>

3、mapper 裡面的namespace 對應 dao層的介面   而且下面的sql語句中的 id 要和dao層的方法名對應 。

4、關於程式碼需要分層設計 ,命名要規範。

common 公共類  一般就是放自己寫的一些公共類。

controller  與前臺進行對接的一層。

pojo        普通類層  定義實體類的屬性 新增get set方法

dao         與mybatis 的 mapper互動的一層  裡面寫了很多介面 藉口對應資料庫操作

service     與dao層 controller 進行對接  處於業務需求  但是我一般都是在controller裡面處理  本人表示這不規範  應該在service裡面處理業務。

mybatis  mapper   就是寫sql語句咯,但是自己還是要明白關於mybatis的原理  核心就是對sql語句進行拼接 ,然後將資料庫中的表字段和 pojo中的類進行匹配 與dao層的方法對接 獲取屬性 返回結果。