為工作室搬磚出現的一些錯誤
阿新 • • 發佈:2018-12-13
剛剛解決的一個錯誤
主要是 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層的方法對接 獲取屬性 返回結果。