springboot+mybatisplus(mybatis)+log4j2

引入log4j2并排除springboot自带的logging

        <!--引入log4j2-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <!--排除掉springboot自带的logging,避免冲突-->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

log4j2.xml文件引入

方式一:application.properties文件中引入
logging.config=classpath:log4j2.xml
方式二:application.yml文件中引入
logging:
config: classpath:log4j2.xml

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<Configuration status = "WARN" monitorInterval = "300">

    <properties>
        <property name="LOG_HOME">D://</property>
    </properties>

    <!--定义所有的appender-->
    <Appenders>
        <!--appender 输出到控制台-->
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout
                    pattern="[%d] [%level] [%logger{10} %line][%thread] traceLogid:[%X{TRACE_LOG_ID}] call[%logger][%method] %msg%n"/>
        </Console>
        <!--日志文件输出 appender-->
        <!--<File name="file" fileName="${LOG_HOME}/20220905log.log">
            <PatternLayout
                    pattern="[%d] [%level] [%logger{10} %line][%thread] traceLogid:[%X{TRACE_LOG_ID}] call[%logger][%method] %msg%n"/>
        </File>-->
        <!--appender 输出到日志文件中-->
        <RollingRandomAccessFile name="accessFile" fileName="${LOG_HOME}/mylog1.log"
                                 filePattern="mylog.%d{yyyy-MM-dd}.%i.log"
                                 immediateFlush="false">
            <Filters>
                <!--只打印DEBUG及以上级别日志-->
                <!--注意此处要将级别设置为DEBUG,不然sql语句的日志打印不出来,因为sql语句的级别是DEBUG-->
                <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <!--日志消息的格式-->
            <PatternLayout charset="UTF-8"
                           pattern="[%d] [%level] [%logger{10} %line][%thread] traceLogid:[%X{TRACE_LOG_ID}] call[%logger][%method] %msg%n"/>

            <Policies>
                <!--每小时滚动一次-->
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
                <!--日志达到512MB 滚动一次-->
                <SizeBasedTriggeringPolicy size="512MB"/>
            </Policies>

            <!-- 日志文件超过最大数值,则删除最早生成的日志文件。注意%d{yyyy-MM-dd}要用年月日格式,不能加上时分秒,并且最后要有%i,这样log4j2
               才能判断出哪天一共产生几个 -->
            <DefaultRolloverStrategy max="500" />
        </RollingRandomAccessFile>

    </Appenders>

    <loggers>
        <logger level="info" name="org.apache.commons" />
        <logger level="info" name="org.apache.zookeeper" />
        <logger level="info" name="org.apache.kafka" />
        <logger level="info" name="org.apache.dubbo" />

        <logger level="info" name="org.springframework"/>
        <logger level="info" name="java.sql.ResultSet"/>

        <logger level="info" name="java.sql.PreparedStatement" />
        <logger level="info" name="java.sql" />
        <logger level="info" name="java.sql.Statement"/>
        <logger level="info" name="java.sql.Connection"/>

        <!--mabatisplus日志配置,在这里写了之后就不需要在yml文件中引入
        logging:
            level:
                com.xxx.dao.mapper: debug
        -->
        <logger level="debug" name="com.xxx.dao.mapper"
                additivity="false">
            <!-- 将SQL语句输出到控制台 -->
            <AppenderRef ref="CONSOLE" />
            <!-- 将SQL语句输出到name为accessFile 的文件中 -->
            <AppenderRef ref="accessFile" />
        </logger>

        <root level="info">
            <AppenderRef ref="CONSOLE"/>
            <AppenderRef ref="accessFile"/>
        </root>
    </loggers>
</Configuration>

注意事项:

在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,在前端页面上添加一个输入框用于输入搜索关键字,并且在点击搜索按钮时将关键字传递到后端。 然后,在后端的控制器中,接收前端传递的关键字参数,并且调用MyBatisPlus提供的模糊查询API进行查询。 具体实现步骤如下: 1.前端页面实现 在前端页面上添加一个输入框和搜索按钮,当用户在输入框输入了关键字并点击搜索按钮时,将关键字传递到后端。 ```vue <template> <div> <input v-model="keyword" /> <button @click="search">搜索</button> </div> </template> <script> export default { data() { return { keyword: '', }; }, methods: { search() { this.$axios.get('/api/search', { params: { keyword: this.keyword } }).then((res) => { console.log(res.data); }); }, }, }; </script> ``` 2.后端控制器实现 在后端控制器中,接收前端传递的关键字参数,并且调用MyBatisPlus提供的模糊查询API进行查询。这里我们使用MyBatisPlus提供的QueryWrapper对象来构建查询条件,并且使用Lambda表达式来简化代码。 ```java @RestController @RequestMapping("/api") public class SearchController { @Autowired private UserService userService; @GetMapping("/search") public List<User> search(String keyword) { QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.like("name", keyword).or().like("email", keyword); return userService.list(wrapper); } } ``` 在上面的代码中,我们构建了一个QueryWrapper对象,使用like方法来查询name或者email字段中包含关键字的数据。最终调用userService的list方法来执行查询操作。 需要注意的是,在这里我们假设UserService是一个MyBatisPlus提供的服务类,并且已经配置好了MapperScannerConfigurer来扫描Mapper接口。如果还没有配置,可以参考MyBatisPlus的文档进行配置。 3.配置MyBatisPlus 在使用MyBatisPlus的模糊查询功能前,需要先配置MyBatisPlus。在SpringBoot中,只需要在配置文件中添加如下配置即可: ```yaml mybatis-plus: mapper-locations: classpath:/mapper/**/*.xml global-config: db-config: logic-delete-value: 1 logic-not-delete-value: 0 configuration: map-underscore-to-camel-case: true ``` 在上面的配置中,我们指定了Mapper接口XML文件的位置,配置了逻辑删除的值和驼峰命名规则等。 4.编写Mapper接口和XML文件 最后,我们需要编写Mapper接口和XML文件来实现具体的查询操作。这里我们以User表为例,编写如下代码: ```java public interface UserMapper extends BaseMapper<User> { } ``` ```xml <mapper namespace="com.example.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.example.entity.User"> <id column="id" property="id" /> <result column="name" property="name" /> <result column="email" property="email" /> </resultMap> <select id="selectByKeyword" resultMap="BaseResultMap"> select * from user where name like concat('%', #{keyword}, '%') or email like concat('%', #{keyword}, '%') </select> </mapper> ``` 在上面的代码中,我们使用了MyBatisPlus提供的BaseMapper接口,并且编写了一个selectByKeyword方法来执行模糊查询操作。需要注意的是,我们使用了concat函数来将%和关键字拼接起来,以实现模糊查询的效果。 至此,我们已经完成了springboot+mybatisplus+vue实现模糊查询的全部操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值