zoukankan      html  css  js  c++  java
  • Mybatis学习笔记

    Mybatis学习笔记03

    一、日志工厂

    使用日志有利于我们排查错误

    1.STDOUT_LOGGING

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


    注意不要放错位置!

    <!--注意大小写不能有错误特别注意不要乱加空格不然会报错而且很难找到这个错误-->
    <setting name="logImpl" value="LOG4J"/>
    

    2.LOG4J

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

    然后在resource目录下创建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/hx.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文件的配置不用掌握,需要的时候去找一下博客配合博客使用

    二、分页

    分页可以有效减少数据的处理量

    使用limit分页(常用)

        //分页查询
        List<User> getUserByLimit(Map<String,Integer> map);
    
        <resultMap id="UserMap1" type="User">
            <result column="id" property="id"/>
            <result column="username" property="name"/>
            <result column="password" property="password"/>
        </resultMap>
    
        <select id="getUserByLimit" parameterType="map" resultMap="UserMap1">
            select * from day1118.user limit #{startIndex},#{pageSize}
        </select>
    

    三、使用注解开发

    使用注解实现CRUD时不需要Mapper.xml

    1.接口编写

        @Select("select * from user")
        List<User> getUsers();
    
        //方法存在多个参数所有的参数前面都要加上@Param(“xxx”)注解
        @Select("select * from user where id = #{id}")
        User getUserByID(@Param("id") int id);
    
        @Insert("insert into user(id,username,password) values (#{id},#{username},#{password}")
        int addUser(User user);
    
        @Update("update user set name=#{name},password=#{password} where id = #{id}")
        int updateUser(User user);
    
        @Delete("delete from user where id = #{uid}")
        int deleteUser(@Param("uid") int id);
    

    2.mybatis-config.xml中绑定接口

        <mappers>
            <mapper class="com.hx.dao.UserMapper"/>
        </mappers>
    

    4.@Param()注解


    5.注解的实现机制本质是反射其底层实现是动态代理

    6.小tips

    增删改操作都需要提交事务,为了减轻代码量我们可以暂时设置一下MybatisUtils工具类,工作时为了避免错误还是不建议这样操作哦!

    四、Mybatis详细执行流程

    ①Resources获取加载全局配置文件
    ②实例化SqlSessionFactoryBuilder构造器
    ③解析配置文件XMLConfigBuilder
    ④Configuration所有的配置信息
    ⑤实例化SqlSessionFactory
    ⑥Transactional事务管理器
    ⑦创建Executor执行器
    ⑧创建sqlSession
    ⑨实现CRUD
    ⑩执行不成功则回滚给事务管理器成功则提交事务最后sqlSession.close()

    五、Lombok插件

    1.导入依赖

        <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.12</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    

    2.实体类上加上注解@Data

    加上注解之后会自动帮我们生成无参构造、getter、setter、toString、hashcode、equals方法

    package com.hx.pojo;
    
    import lombok.Data;
    
    @Data
    public class Student {
        private int id;
        private String name;
        //学生需要关联一个老师
        private Teacher teacher;
    }
    
  • 相关阅读:
    Servlet
    MySQL游标
    MySQL数据库的备份和还原
    MySQL安全管理
    MySQL存储过程
    MySQL联结——实现多表查询
    MySQL视图
    MySQL触发器
    asp.net core 读取连接字符串
    form表单提交前进行ajax验证
  • 原文地址:https://www.cnblogs.com/huangxuannn/p/15668321.html
Copyright © 2011-2022 走看看