1. 程式人生 > >實訓成績管理系統總結(一)——後臺介面的實現

實訓成績管理系統總結(一)——後臺介面的實現

1.找不到BaseResultMap類,報錯如下:

  <select id="getAllUsers" resultMap="BaseResultMap">
    SELECT * FROM user
  </select>
  <select id="login" resultMap="BaseResultMap" parameterType="map">
    SELECT * FROM user WHERE  id=#{userId} and password = #{password}
  </select>
  <select id="selectById" parameterType="int" resultMap="BaseResultMap">
    SELECT * from user where id = #{userId};
  </select>

解決辦法:將第二個select的parameterType改為resultMap

由此特意學習了一下parameterType、prrameterMap、resultMap、resulttype,首先需要明白的就是Map代表著對映,type是java的一種型別,將它們的的區別以及使用情況整理如下:

1.1resultType和resultMap

均表示查詢結果集——java物件之間的一種關係,即處理查詢結果集,對映到java物件。resultMap表示將查詢結果列一一對映到bean物件的各個屬性,resultType表示的是bean中的物件類,在查詢結果集中的屬性和bean物件類中的屬性一一對應時,可以省略對映

1.2parameterType和parameterMap

parameterMap和resultMap類似,開發過程中一般使用後者,parameterType直接將查詢結果列值型別自動對應到java物件屬性型別上,不在配置對映關係一一對應

1.3userMapprer的部分配置檔案程式碼如下:

  <select id="getAllUsers" resultMap="BaseResultMap">
    SELECT * FROM user
<!--Mapper配置檔案,從user表獲取-->
  </select>
  <select id="login" resultMap="BaseResultMap" parameterType="map">
    SELECT * FROM user WHERE  id=#{userId} and password = #{password}
  </select>

2.註冊insert方法寫了卻失敗,但是可以成功查詢到已經註冊的資訊

SQL語句對每一個欄位設定與對給定的欄位進行設定,在insert方法中為了避免出錯,最好使用後者

<insert id="insert" parameter="User">
    INSERT INTO USER VALUES (#(id),#(name),#(password),0)
</insert>
<!--角色role預設為0,學生,管理員直接給-->


<insert id="insert" parameter="User">
    INSERT INTO USER (id,name,password,role) VALUES (#(id),#(name),#(password),0)
</insert>

3.啟動Tomcat報JMX埠被其他程序佔用

在答辯前10分鐘,啟動Tomcat時居然報了個JMX1099埠被佔用,對於這個問題,以前我的解決方法是開啟配置檔案修改埠值,這樣修改的地方就比較多,最快的解決方案是開啟後臺的工作管理員,檢視哪個程序佔用了

使用命令:netstat -aon|findstr 1099
可看到使用此埠的程序

使用命令:taskkill -f -pid 
關閉使用此埠的程序