mybatis日志、分页,注解、lombok

简介: mybatis日志、分页,注解、lombok

1.日志工厂

标准日志配置

写在核心配置文件mybatis-config.xml中

<!--日志-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

2.log4j

  • Log4j是一个由Java编写可靠、灵活的日志框架,是Apache旗下的一个开源项目
  • 它不但能控制日志输出的目的地,也能控制日志输出的内容格式
  • 通过定义不同的日志级别,可以更加精确的控制日志的生成过程
  • 只需要通过一个配置文件就可以灵活的配置,而不需要修改任何代码

2.1导入log4j包

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

2.2创建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/shun.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

2.3配置log4j为日志的实现

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

简单使用

Logger导包import org.apache.log4j.Logger;

static Logger logger = Logger.getLogger(UserTest.class);//当前类名
@Test
    public void Log4jTest(){
        logger.info("info进入log4j");
        logger.debug("debug进入log4j");
        logger.error("error进入log4j");
    }

3.分页

  • limit分页
语法:select * from mybatis_study.user limit startIndex,pageSize
startIndex表示起始位置(0)
pageSize表示几条数据
select * from mybatis_study.user limit 0,3;

mybatis分页查询

接口UserMapper.java

    //分页查询
    List<User> getUserLimit(Map<String,Integer> map);

UserMapper.xml

    <!--分页查询-->
    <select id="getUserLimit" resultMap="UserMap" parameterType="map">
        select * from USER limit #{startIndex},#{pageSize}
    </select>

测试类

    //分页查询
    @Test
    public void getUserLimit(){
        SqlSession session = MybatisUtil.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        //创建Map对象
        Map<String, Integer> map = new HashMap<>();
        //第一个参数对应的是sql语句中的参数
        map.put("startIndex",1);
        map.put("pageSize",3);
        List<User> userList = mapper.getUserLimit(map);
        for (User user : userList) {
            System.out.println(user);
        }
        session.commit();
        session.close();
    }

友情链接:

mybatis分页插件PageHelper

pagehelp插件


4.注解

接口UserMapper.java

@Select("select * from user")
List<User> getUsers();

绑定接口:在核心配置文件mybatis-config.xml

    <!--绑定接口-->
    <mappers>
        <mapper class="mapper.UserMapper"></mapper>
    </mappers>

测试

    @Test
    public void test1(){
        SqlSession session = MybatisUtil.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> userList = mapper.getUsers();
        for (User user : userList) {
            System.out.println(user);
        }
        session.commit();
        session.close();
    }

根据ID查询

方法中有多个参数时,必须加@Param

UserMapper.java接口

    //方法中有多个参数时,必须加@Param
    @Select("select * from user where id = #{id}")
    User getUserById(@Param("id") int id);

测试类

    @Test
    public void getUserById(){
        SqlSession session = MybatisUtil.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        User user = mapper.getUserById(1);
        System.out.println(user);
        session.close();
    }

关于@Param

  • 基本类型的参数和string需要加上
  • 引用类型不需要加


5.lombok

   5.1在idea中安装lombok插件

5.2导lombok包(或添加依赖)

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
</dependency>

5.3在实体类添加注解

@Getter and @Setter

@FieldNameConstants

@ToString

@EqualsAndHashCode

@AllArgsConstructor:有参构造

@RequiredArgsConstructor

@NoArgsConstructor:无参构造

@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger, @CustomLog

@Data:无参构造,get,set,hashCode,equals,toString(这些方法就不用写了)

@Builder

@SuperBuilder

@Singular

@Delegate

@Value

@Accessors

@Wither

@With

@SneakyThrows

@val

@var

experimental @var

@UtilityClass

@Data
public class User{
    private Integer id;
    private String name;
    private String sex;
    private String address;
}


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
25 1
|
24天前
|
SQL XML Java
【mybatis】第二篇:@Select注解中加入字段判断
【mybatis】第二篇:@Select注解中加入字段判断
|
4月前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
204 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
4天前
|
SQL 前端开发 Java
通过使用Mybatis插件来实现数据的分页功能
通过使用Mybatis插件来实现数据的分页功能
|
7天前
|
Java 数据安全/隐私保护 开发者
【SpringBoot】讲清楚日志文件&&lombok
【SpringBoot】讲清楚日志文件&&lombok
17 5
|
24天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
2月前
|
Java 数据库连接 mybatis
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
22 0
|
2月前
|
SQL Java 数据库连接
Mybatis是如何实现分页功能的
Mybatis是如何实现分页功能的
11 0
|
2月前
|
Java 数据库连接 网络安全
mybatis使用全注解的方式案例(包含一对多关系映射)
mybatis使用全注解的方式案例(包含一对多关系映射)
12 0
|
2月前
|
关系型数据库 Java 数据库连接
如何利用Mybatis-Plus自动生成代码(超详细注解)
如何利用Mybatis-Plus自动生成代码(超详细注解)
29 1