實訓成績管理系統總結(一)——後臺介面的實現
阿新 • • 發佈:2018-12-21
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
關閉使用此埠的程序