-
在Dao層中封裝了與數據庫有關的操作,在service層調用Dao層來處理業務邏輯,在servlet中調用service層中的對象來得到處理的結果,并且返回給頁面 servlet的幾個功能: 1.接受頁面的值 2.向頁面傳值 3.根據業務需要,調用service 4.跳轉頁面 Model: 數據表對應的模型; DAO:每個表對應一個DAO,對該表的一些操作。 Service:或Logic層,跟Servlet對應,一些相關的業務功能。 Servlet: 設置編碼/過濾器;接受頁面的值;向頁面傳值;業務需要調用service;跳轉。查看全部
-
文件在WebRoot目錄下就相當于在工程項目下 1.凡是寫在WebRoot文件夾中的jsp文件,必須通過后臺的servlet才能訪問到, 如果只是在地址欄中輸入,是無法訪問到的 (也就是說我們可以直接不用加Web-Root就可以訪問到在此文件夾下的直接文件如:Index.jsp) (以MicroMessage這個項目為例:) 2.jsp中的basePath的值是:http://localhost:8080/MicroMessage/ 3.jsp中的path的值是:/MicroMessage 4.在servlet中: request.getRequestDispatcher("/WEB-INF/jsp/back/list.jsp").forward( request, response); 這里的/代表的是項目的根目錄,所以不用加上Web-Root,就像我們訪問index.jsp不用加上 Web-Root一樣查看全部
-
模糊匹配的字符串拼接用空格拼" '%' ? '%'"查看全部
-
Mybatis之SqlSession查看全部
-
333查看全部
-
222查看全部
-
111查看全部
-
&& = and && =& ""=""查看全部
-
Mybatis OGNL表達式查看全部
-
Mybatis OGNL表達式查看全部
-
mybatis sqlsession查看全部
-
一、獲取自增主鍵值: <insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.imooc.bean.Command"> insert into command(name,description) values(#{name},#{description}) </insert> //解析:添加數據(在主外鍵的關系中)可以使用 useGeneratedKeys="true",可獲取自增長的id,并配合keyProperty="id"(java中實體類的屬性名)指定該對象的主鍵值。 二、找不到namespace.id的異常效果: 1、在Configuration.xml沒有配置<mappers><mapper resource="*.xml"></mapper></mappers>; 2、在1的配置中或selectList("Message.queryMessageList",message);中,名字寫錯。 三、排查SQL語法錯誤:如果控制臺出現SQL語句問題,復制到SQL軟件上執行,若有參數,手動寫上并執行。 四、不要過度使用${}。 五、亂碼問題: 1. servlet傳參時的編碼:request.setCharacterEncoding("utf-8");或直接使用過濾器; 2. Java文件本身的編碼; 3. 連接數據庫的參數中,設定編碼方式:jdbc:mysql://192.168.1.1:3306/cms?characterEncoding=utf-8 4. 數據庫、表的編碼; 5. 展示頁面的編碼:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6. 瀏覽器編碼問題等。查看全部
-
一、resultMap和resultType:當配置resultType時,就不需要配置resultMap,看似resultType方便,但是會被受限制,沒有resultMap開放多。 相同點:都是表示查詢結果集的類型。 不同點:resultMap需要手動配置映射關系,而resultType是直接指定java類型或者自定義的實體類型,查詢結果集的列名必須和實體屬性名稱一致(實體類:名稱大小寫可以忽略;java類型,如Map集合的key大小寫要一致,盡量都大小寫規范,如果不放心可以select ID id,...)。 優缺點: 1、resultType結果集列名要與java屬性名一樣,但是resultMap不受限制,因為resultMap有column來規定。 2、由于SQL類型與Java中類型部分不匹配,resultMap可以通過typeHandler=""來匹配(如:SQL中的0和1來表示java中的false和true;Date類型的轉換),但是resultType無能為力。 二、parameterMap和patameterType: 表示傳入參數的對應關系,前者不推薦使用,只是mybatis為了適應以前的版本。 提示:看到Map字眼的想到映射關系,看到Type字眼的想到類型。 三、#{}和${}: 相同點:都是用來作為占位符。 不同點:#{}在預編譯的時候會唄替換為?,而${}在預編譯的時候直接將變量的值替換進去,而且沒有引號(所以還要加上“'${...}'”),故一般都是用前者,個別情況會使用后者:如需進行排序,且排序字段為參數時可以使用${}(order by后面不喜歡被預編譯,所以使用${}更為恰當)。 四、#{}和ognl:在#{}中如果是基本類型,其中的名稱可以隨便寫(不推薦),但一般都用_parameter,因為值唯一,而ognl中必須寫成_parameter的方式查看全部
-
快捷鍵: 1、Ctrl+Shift+R:查看該高亮部分是哪個類。 2、Alt+Shift+R:選擇高亮部分修改關聯的名稱(不要自己手動去改,否則所有都要自己手動去改)。 注意:rs.getString("列名");這里的列名并不指的是數據庫中的字段名,而是當時select id ID,...語句當中空格后的命名。如果不寫默認是數據庫中的字段名,MyBatis中的xml配置column也同理可得。如果一條select中涉及到多個表,如果為select a.id,b.id...由于column不能加前綴,所以只能給其中一個自定義命名,如(select a.id C_ID,b.id...),否則會出現兩個一樣的id變量名導致報錯。查看全部
-
如何在xml的配置文件中反應表結構之間的對應關系呢? 在java中,通過主表的實體類中包含子表的集合來反應一對多的關系,在配置文件中同樣是通過集合來配置這種關系的。在主表的映射文件中使用<collection>標簽來指定子表的對應關系以及子表的引用,使用resultMap屬性來指定子表映射關系的文件,格式是namespace.子表對應關系的id。那么新的問題來了,主表中的id與子表中的id,同時映射到結果集resultMap就會產生問題,所以就需要給任意一個id起一個別名。注意:給表起別名,以及字段的引用,打印出的結果是不包含表名的,比如說 a.id,打印出的結果是沒有a的,所以a.id與b.id映射的都是一個屬性,所以給字段起一個別名,那么字段名就會改變,配置映射文件的時候,注意數據庫字段與java實體類的屬性的對應關系。查看全部
舉報
0/150
提交
取消