zoukankan      html  css  js  c++  java
  • 渚漪Day27——SSM【Mybatis04】

    5、ResultMap

    结果集映射

    <resultMap id="UserMap" type="User">
        <result column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="pwd" property="password"/>
    </resultMap>
    

    6、日志

    6.1、日志工厂

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

    STDOUT_LOGGING标准准日志输出

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

    6.2、LOG4J

    导入maven包

    log4j.properties

    #将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
    log4j.rootLogger=DEBUG,console,file
    
    #控制台输出的相关设置
    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
    
    #文件输出的相关设置
    log4j.appender.file = org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=./log/ijuy.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
    

    配置log4j的实现

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

    简单使用

    1、导包

    import org.apache.log4j.Logger;
    

    2、加载log对象

    static Logger logger = Logger.getLogger(DaoTest.class);
    

    3、日志级别

    logger.info("info:进入了testLog4j");
    logger.debug("debug:进入了testLog4j");
    logger.error("error:进入了testLog4j");
    

    7、分页

    为什么要分页

    • 减少数据的处理量

    7.1、使用limit分页(主)

    语法:
    select * from mybatis.user limit startIndex,pageSize;
    select * from mybatis.user limit 0,5;
    

    测试

    <select id="getUserByLimit" parameterType="map" resultMap="UserMap">
        select * from mybatis.user limit #{startIndex},#{pageSize}
    </select>
    
    @Test
    //查询全部
    public void test2(){
        try(SqlSession session = MybatisUtils.getSqlSession()) {
            UserMapper mapper = session.getMapper(UserMapper.class);
            HashMap<String, Integer> map = new HashMap<String, Integer>();
            map.put("startIndex", 0);
            map.put("pageSize", 2);
    
            List<User> userList = mapper.getUserByLimit(map);
    
            for (User user : userList) {
                System.out.println(user);
            }
        }
    }
    

    7.2、RowBounds

    不建议开发中使用

    <select id="getUserByRowBounds" resultMap="UserMap">
        select * from mybatis.user
    </select>
    
    @Test
    //分页2
    public void test3(){
        try(SqlSession session = MybatisUtils.getSqlSession()) {
    
            UserMapper mapper = session.getMapper(UserMapper.class);
            RowBounds rowBounds = new RowBounds(0, 4);
            List<User> list = session.selectList("com.ijuy.dao.UserMapper.getUserByRowBounds", null, rowBounds);
    
            for (User user : list) {
                System.out.println(user);
            }
        }
    }
    

    7.3、分页开发插件

  • 相关阅读:
    react路由组件&&非路由组件
    react函数式组件(非路由组件)实现路由跳转
    react使用antd组件递归实现左侧菜单导航树
    【LeetCode】65. Valid Number
    【LeetCode】66. Plus One (2 solutions)
    【LeetCode】68. Text Justification
    【LeetCode】69. Sqrt(x) (2 solutions)
    【LeetCode】72. Edit Distance
    【LeetCode】73. Set Matrix Zeroes (2 solutions)
    【LeetCode】76. Minimum Window Substring
  • 原文地址:https://www.cnblogs.com/ijuysama/p/12900341.html
Copyright © 2011-2022 走看看