Mybatis框架 日志工廠 分頁

6墓赴、日志

6.1、日志工廠

如果一個(gè)數(shù)據(jù)庫操作航瞭,出現(xiàn)了異常诫硕,我們需要排錯(cuò)。日志就是最好的助手刊侯!

曾經(jīng):sout 章办、debug

現(xiàn)在:日志工廠!

  • SLF4J
  • LOG4J 【掌握】
  • LOG4J2
  • JDK_LOGGING
  • COMMONS_LOGGING
  • STDOUT_LOGGING 【掌握】
  • NO_LOGGING

在Mybatis中具體使用那個(gè)一日志實(shí)現(xiàn),在設(shè)置中設(shè)定藕届!

STDOUT_LOGGING標(biāo)準(zhǔn)日志輸出

在mybatis核心配置文件中挪蹭,配置我們的日志!

<settings>
    <setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>

6.2休偶、Log4j

什么是Log4j梁厉?

  • Log4j是Apache的一個(gè)開源項(xiàng)目,通過使用Log4j踏兜,我們可以控制日志信息輸送的目的地是控制臺词顾、文件、GUI組件
  • 我們也可以控制每一條日志的輸出格式碱妆;
  • 通過定義每一條日志信息的級別肉盹,我們能夠更加細(xì)致地控制日志的生成過程。
  • 通過一個(gè)配置文件來靈活地進(jìn)行配置山橄,而不需要修改應(yīng)用的代碼垮媒。
  1. 先導(dǎo)入log4j的包

    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    
  2. log4j.properties

    #將等級為DEBUG的日志信息輸出到console和file這兩個(gè)目的地,console和file的定義在下面的代碼
    log4j.rootLogger=DEBUG,console,file
    
    #控制臺輸出的相關(guān)設(shè)置
    log4j.appender.console = org.apache.log4j.ConsoleAppender
    log4j.appender.console.Target = System.out
    log4j.appender.console.Threshold=DEBUG
    log4j.appender.console.layout = org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
    
    #文件輸出的相關(guān)設(shè)置
    log4j.appender.file = org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=./log/kuang.log
    log4j.appender.file.MaxFileSize=10mb
    log4j.appender.file.Threshold=DEBUG
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
    
    #日志輸出級別
    log4j.logger.org.mybatis=DEBUG
    log4j.logger.java.sql=DEBUG
    log4j.logger.java.sql.Statement=DEBUG
    log4j.logger.java.sql.ResultSet=DEBUG
    log4j.logger.java.sql.PreparedStatement=DEBUG
    
  3. 配置log4j為日志的實(shí)現(xiàn)

    <settings>
        <setting name="logImpl" value=""/>
    </settings>
    
  4. Log4j的使用航棱!,直接測試運(yùn)行剛才的查詢

    [圖片上傳失敗...(image-a22c9c-1587294155346)]

簡單使用

  1. 在要使用Log4j 的類中萌衬,導(dǎo)入包 import org.apache.log4j.Logger;

  2. 日志對象饮醇,參數(shù)為當(dāng)前類的class

    static Logger logger = Logger.getLogger(UserDaoTest.class);
    
  3. 日志級別

    logger.info("info:進(jìn)入了testLog4j");
    logger.debug("debug:進(jìn)入了testLog4j");
    logger.error("error:進(jìn)入了testLog4j");
    

7、分頁

思考:為什么要分頁秕豫?

  • 減少數(shù)據(jù)的處理量

7.1朴艰、使用Limit分頁

語法:SELECT * from user limit startIndex,pageSize;
SELECT * from user limit 3;  #[0,n]

使用Mybatis實(shí)現(xiàn)分頁,核心SQL

  1. 接口

    //分頁
    List<User> getUserByLimit(Map<String,Integer> map);
    
  2. Mapper.xml

    <!--//分頁-->
    <select id="getUserByLimit" parameterType="map" resultMap="UserMap">
        select * from  mybatis.user limit #{startIndex},#{pageSize}
    </select>
    
  3. 測試

    @Test
    public void getUserByLimit(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    
    HashMap<String, Integer> map = new HashMap<String, Integer>();
        map.put("startIndex",1);
        map.put("pageSize",2);
    
        List<User> userList =  mapper.getUserByLimit(map);
        for (User user : userList) {
        System.out.println(user);
        }
    
        sqlSession.close();
        }
    
    

7.2混移、RowBounds分頁

不再使用SQL實(shí)現(xiàn)分頁

  1. 接口

    //分頁2
    List<User> getUserByRowBounds();
    
  2. mapper.xml

    <!--分頁2-->
    <select id="getUserByRowBounds" resultMap="UserMap">
        select * from  mybatis.user
    </select>
    
  3. 測試

    @Test
    public void getUserByRowBounds(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    
    //RowBounds實(shí)現(xiàn)
    RowBounds rowBounds = new RowBounds(1, 2);
    
    //通過Java代碼層面實(shí)現(xiàn)分頁
    List<User> userList = sqlSession.selectList("com.kuang.dao.UserMapper.getUserByRowBounds",null,rowBounds);
    
        for (User user : userList) {
        System.out.println(user);
        }
    
        sqlSession.close();
        }
    

7.3祠墅、分頁插件

[圖片上傳失敗...(image-446bfe-1587294155346)]

了解即可,萬一 以后公司的架構(gòu)師歌径,說要使用毁嗦,你需要知道它是什么東西!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末回铛,一起剝皮案震驚了整個(gè)濱河市狗准,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌茵肃,老刑警劉巖腔长,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異验残,居然都是意外死亡捞附,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸟召,“玉大人胆绊,你說我怎么就攤上這事∫┌妫” “怎么了辑舷?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長槽片。 經(jīng)常有香客問我何缓,道長,這世上最難降的妖魔是什么还栓? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任碌廓,我火速辦了婚禮,結(jié)果婚禮上剩盒,老公的妹妹穿的比我還像新娘谷婆。我一直安慰自己,他們只是感情好辽聊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布纪挎。 她就那樣靜靜地躺著,像睡著了一般跟匆。 火紅的嫁衣襯著肌膚如雪异袄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天玛臂,我揣著相機(jī)與錄音烤蜕,去河邊找鬼。 笑死迹冤,一個(gè)胖子當(dāng)著我的面吹牛讽营,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泡徙,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼橱鹏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锋勺?” 一聲冷哼從身側(cè)響起蚀瘸,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎庶橱,沒想到半個(gè)月后贮勃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡苏章,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年寂嘉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奏瞬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泉孩,死狀恐怖硼端,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寓搬,我是刑警寧澤珍昨,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站句喷,受9級特大地震影響镣典,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜唾琼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一兄春、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锡溯,春花似錦赶舆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至倡蝙,卻和暖如春夕晓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悠咱。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留征炼,地道東北人析既。 一個(gè)月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像谆奥,于是被迫代替她去往敵國和親眼坏。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354