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

2023-12-11 11:30

本文主要是介绍Spring日志完结篇,MyBatis操作数据库(入门),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

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

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

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

MyBatis的写法

开发规范:

单元测试的写法

传递参数


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

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

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

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

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

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

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

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

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

logging:

 logback:rollingpolicy:max-file-size: 1KBfile-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=falseusername: rootpassword: lcl15604007179driver-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 {@Autowiredprivate UserInfoMapper userInfoMapper;
//    @BeforeEach每个测试方法之前的注解@BeforeEachvoid setUp() {log.info("setUp");}
//  @AfterEach每个测试方法之后的注解@AfterEachvoid tearDown() {log.info("setdown");}@Testvoid selectAll() {List<UserInfo> list=userInfoMapper.selectAll();log.info(list.toString());}
}

使用MyBatis可能遇到的问题

传递参数

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

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

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

这篇关于Spring日志完结篇,MyBatis操作数据库(入门)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/480520

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间