Spring日志完结篇,MyBatis操作数据库(入门)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Spring日志完结篇,MyBatis操作数据库(入门)

Spring可以对日志进行分目录打印

他的意思是说spring相关只打印INFO级别的标准,但是他也能获取到debug级别的日志

日志设置颜色(只能控制控制台的颜色(idea的功能)

日志持久化(让日志进行长期的保存)

数据存储在数据库中,是一种持久化的方式

日志保存在文件中,也是一种持久化的方式

只需要配置文件上,加上logging: file:  name: 即可(注意如果前面有logging需要注意对其,是logging下的文件

默认是idea的项目内部生成目录,然后内部放日志(name既可以设置路径,又可以设置名称,但是path只能设置路径(就算是一个文件名称,也不会被人问是文件名称)name的文件优先级高于path。

日志分割(企业中,通常日志分割是200M,下面这个代码说明到达1KB就进行分割)

logging:

logback:

   rollingpolicy:

     max-file-size: 1KB

     file-name-pattern: ${LOG_FILE}.%d{yyyy-MM-dd}.%i

logger为什么用static的意义:

static就相当于提前把这个创建好了,我们在编程中不是每一步都具有意义。

日志的简单写法:

使用Lombok的注解,@Slf4j(他这个对象名字是log)

总结:使用日志可以快速去发现问题和定位问题,spring默认情况喜爱使用的是INFO(即普通事件)我们可以通过lombok提供的@slf4k注解,和log对象,进行快速的打印日志

MyBatis操作数据库(优秀的持久层框架)

他和Spring没有什么关系(只不过是Spring算是把它集成了)

配置(mybatis的applictaion.yml)

spring:
  datasource:
#    java100对应的意思是创建的数据库的名称
    url: jdbc:mysql://127.0.0.1:3306/java100?characterEncoding=utf8&useSSL=false
    username: root
    password: lcl15604007179
    driver-class-name: com.mysql.cj.jdbc.Driver

简单的一个接口调用(看一看查询能否查询到结果)

列子是定义了一个接口,然后select访问的用List保存,然后通过UserInfoContorller去调用userInfoMapper(实现这个接口,去调用这个方法),让他调用这个userInfoMapper

发现能查到结果,而我们做出更改之后发现,它会对名字(表的属性)和你new的类的属性,假如不一致(就会给值为null)

MyBatis的写法

1.xml

2.注解(例子当前是注解的方式)

1.引入Mybatis的依赖,引入对应数据库依赖,比如mysql

2.配置数据库相关信息

3.定义JAVA对象

4.实现

package com.example.myBatis.mapper;
//ibatis是Mybatis的前身,加入Mapper之后,mybatis就会告诉Spring,把对象交给Spring管理
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
 
import java.util.List;
@Mapper
public interface UserInfoMapper {
//根据不同注解,使用不同方法,select是查询语句
    @Select("select*from userInfo")
    List<UserInfo> selectAll();
 
}

开发规范:

使用MyBatis

抽象类的实现场景

企业建表规范:字段名/表名全部小写

需要三个字段:(哪怕你只需要一个,也必须要有这三个)

1.id

2.创建时间

3.更新时间

(逻辑删除)

单元测试的写法

选择test

package com.example.myBatis.mapper;
 
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
 
import java.util.List;
 
import static org.junit.jupiter.api.Assertions.*;
//@SpringBootTest,是启动Spring容器,我们才能属性注入他内部的东西
@SpringBootTest
@Slf4j
class UserInfoMapperTest {
    @Autowired
    private UserInfoMapper userInfoMapper;
//    @BeforeEach每个测试方法之前的注解
    @BeforeEach
    void setUp() {
        log.info("setUp");
    }
//  @AfterEach每个测试方法之后的注解
    @AfterEach
    void tearDown() {
        log.info("setdown");
    }
 
    @Test
    void selectAll() {
        List<UserInfo> list=userInfoMapper.selectAll();
        log.info(list.toString());
    }
}

使用MyBatis可能遇到的问题

传递参数

如果只有一个参数,当然,此时你传递的就可以不是死的1了

如果只有一个参数:那么SQL的名称可以任意的(合法但是有病),#{}代表要进行传参

这个意思是(把id 重命名为userId,当然只有一个参数,他也不用一定去进行重命名这个操作)

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
11天前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
62 6
|
11天前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
27 2
|
15天前
|
开发框架 运维 监控
Spring Boot中的日志框架选择
在Spring Boot开发中,日志管理至关重要。常见的日志框架有Logback、Log4j2、Java Util Logging和Slf4j。选择合适的日志框架需考虑性能、灵活性、社区支持及集成配置。本文以Logback为例,演示了如何记录不同级别的日志消息,并强调合理配置日志框架对提升系统可靠性和开发效率的重要性。
|
1月前
|
存储 安全 Java
Spring Security 入门
Spring Security 是 Spring 框架中的安全模块,提供强大的认证和授权功能,支持防止常见攻击(如 CSRF 和会话固定攻击)。它通过过滤器链拦截请求,核心概念包括认证、授权和自定义过滤器。配置方面,涉及密码加密、用户信息服务、认证提供者及过滤器链设置。示例代码展示了如何配置登录、注销、CSRF防护等。常见问题包括循环重定向、静态资源被拦截和登录失败未返回错误信息,解决方法需确保路径正确和添加错误提示逻辑。
Spring Security 入门
|
23天前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
72 8
|
24天前
|
人工智能 自然语言处理 Java
Spring Cloud Alibaba AI 入门与实践
本文将介绍 Spring Cloud Alibaba AI 的基本概念、主要特性和功能,并演示如何完成一个在线聊天和在线画图的 AI 应用。
253 7
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
89 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
2月前
|
SQL Java 数据库连接
深入 MyBatis-Plus 插件:解锁高级数据库功能
Mybatis-Plus 提供了丰富的插件机制,这些插件可以帮助开发者更方便地扩展 Mybatis 的功能,提升开发效率、优化性能和实现一些常用的功能。
454 26
深入 MyBatis-Plus 插件:解锁高级数据库功能
|
1月前
|
Java 数据库连接 数据库
从入门到精通---深入剖析Spring DAO
在Java企业级开发中,Spring框架以其强大的功能和灵活性,成为众多开发者的首选。Spring DAO(Data Access Object)作为Spring框架中处理数据访问的重要模块,对JDBC进行了抽象封装,极大地简化了数据访问异常的处理,并能统一管理JDBC事务。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring DAO,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
31 1
|
2月前
|
监控 Java 数据安全/隐私保护
如何用Spring Boot实现拦截器:从入门到实践
如何用Spring Boot实现拦截器:从入门到实践
72 5