Spring+Mybatis+Mysql+IDEA+Maven+log4j整合Demo
发布日期:2021-05-10 02:13:35 浏览次数:21 分类:精选文章

本文共 5097 字,大约阅读时间需要 16 分钟。

IDEA+Spring+Mybatis+Maven+log4j全面的配置与使用教程

随着软件开发的不断深入,使用IDEA搭建项目已成为开发者的必备技能之一。对于需要实现前后端逻辑的开发者来说,Spring和Mybatis无疑是最优的选择。然而,如何将这些框架和工具有机地整合在一起,并通过log4j输出详细的SQL日志,以便更直观地观察数据库与应用程序之间的交互,仍然是一个值得深入探讨的问题。本文将为大家详细讲解IDEA中Spring+Mybatis的整合配置过程,包括Maven的集成、log4j的使用以及测试类的配置。


目录结构

项目源文件位于src目录下,具体结构如下:

src/├── main/│   ├── entity/│   │   └── User.java│   └── mapper/│       ├── UserMapper.java│       └── UserMapper.xml├── resources/│   ├── mybatis/│   │   └── SqlMapConfig.xml│   ├── spring/│   │   └── applicationContext.xml│   └── db.properties│       └── log4j.properties└── test/    └── UserTest.java

1. Maven项目配置

首先,我们需要创建一个Maven项目。通过IDEA创建新项目时,选择“Maven项目”,并在项目对象工厂中选择“空项目”。完成后,项目结构大致如下:

4.0.0
com.example
look-user-demo
1.0.0
jar

接下来,配置pom.xml,确保引入了所有所需的依赖。完整的pom.xml配置如下:

4.0.0
com.example
look-user-demo
1.0.0
jar
junit
junit
4.12
compile
commons-logging
commons-logging
1.2
log4j
log4j
1.2.17
org.slf4j
slf4j-api
1.8.0-beta2
org.slf4j
slf4j-log4j12
1.8.0-beta2
test
org.springframework
spring-context
5.0.8.RELEASE
org.springframework
spring-jdbc
5.0.8.RELEASE
mysql
mysql-connector-java
8.0.11
commons-dbcp
commons-dbcp
1.4
org.mybatis
mybatis
3.4.6
org.mybatis
mybatis-spring
1.3.2

2. log4j配置

为了实现对SQL语句的详细日志输出,我们需要配置log4j.properties文件。示例配置如下:

# Global logging configurationlog4j.rootLogger=ERROR, stdout# MyBatis logging configurationlog4j.logger.com.kiss=DEBUG# Console output configurationlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

3. 数据库连接配置

db.properties文件中,我们需要配置外部数据库的连接信息。示例配置如下:

jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/sm?useAffectedRows=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=falsejdbc.username=rootjdbc.password=123456

4. 实体类配置

创建entity包下的User.java文件,定义实体类。示例代码如下:

public class User {    int id;    String name;    @Override    public String toString() {        return "User{" + "id=" + id + ", name='" + name + '\'' + '}';    }}

5. Mapper接口配置

mapper包下创建UserMapper.java文件,定义接口。示例代码如下:

package mapper;import entity.User;import java.util.List;public interface UserMapper {    User findUserById(int id);}

6. Mybatis映射文件配置

创建mapper包下的UserMapper.xml文件,配置SQL映射。示例代码如下:


7. Spring配置文件

resources/spring目录下创建applicationContext.xml文件,配置Spring和Mybatis的整体配置。示例代码如下:


8. 测试类配置

test包下创建UserTest.java文件,配置测试类。示例代码如下:

package test;import entity.User;import mapper.UserMapper;import org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class UserTest {    private ApplicationContext applicationContext;    @Before    public void setup() {        applicationContext = new ClassPathXmlApplicationContext("spring/applicationContext.xml");    }    @Test    public void findUserById() {        UserMapper userMapper = (UserMapper) applicationContext.getBean("userMapper");        User user = userMapper.findUserById(1);        System.out.println(user);    }}

测试结果

运行测试类时,IDEA会自动启动Tomcat服务器,并将页面打包发布到服务器上。此时,你可以通过浏览器访问http://localhost:8080/look-user-demo查看测试结果。

通过上述配置,你可以实现Spring+Mybatis+Maven+IDEA的完整集成,并通过log4j输出详细的SQL日志,直观地观察数据库与应用程序之间的交互过程。


注意事项

  • Mapper接口与映射文件名称:确保Mapper接口的名称与映射文件名称一致。
  • 实体类属性与数据库列:实体类的属性应与数据库表中的列对应,并保留必要的setget方法。
  • Spring容器重建问题:在测试类中,@Before注解的方法会在每个测试方法执行前重建IOC容器,建议在@Test方法中使用@Autowired注解以避免重建容器的问题。
  • Mybatis配置文件优化:在SqlMapConfig.xml中,可以配置二级缓存、结果集类型等优化参数。
  • 通过以上配置,你可以更高效地开发和调试Spring+Mybatis应用程序,并通过log4j实现对SQL语句的详细日志输出。

    上一篇:IDEA+maven+SpringMVC配置简单web项目
    下一篇:Spring事务的两种常用传播方式

    发表评论

    最新留言

    能坚持,总会有不一样的收获!
    [***.219.124.196]2025年04月14日 03时34分07秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章

    2024数字安全创新性案例报告,从零基础到精通,收藏这篇就够了! 2023-01-24
    2024最新最全CTF入门指南(非常详细)零基础入门到精通,收藏这一篇就够了 2023-01-24
    2024最新科普什么是大模型?零基础入门到精通,收藏这篇就够了 2023-01-24
    2024最新程序员接活儿搞钱平台盘点 2023-01-24
    2024最火专业解读:信息安全(非常详细)零基础入门到精通,收藏这一篇就够了 2023-01-24
    (插播)unity的 异常捕捉和 ios Android 崩溃信息的捕捉。 2023-01-24
    2024版最新SRC漏洞挖掘思路手法(非常详细),零基础入门到精通,收藏这一篇就够了 2023-01-24
    2024版最新渗透测试零基础入门教程,带你入门到精通(超详细),收藏这篇就够了 2023-01-24
    2024版最新网络安全入门必备读书清单(非常详细)零基础入门到精通,收藏这一篇就够了 2023-01-24
    2024版最新网络安全教程从入门到精通,看完这一篇就够了 2023-01-24
    0/1背包问题——从LeetCode题海中总结常见套路 2023-01-24
    (原创)面向对象的系统对接接口编写。第5篇(完结) 2023-01-24
    2024网络安全岗就业前景如何?零基础入门到精通,收藏这篇就够了 2023-01-24
    2024零基础如何入门网络安全? 2023-01-24
    2024,java开发,已经炸了吗? 2023-01-24
    2025入门黑客技术必读书籍(非常全面)带你从小白进阶大佬!收藏这一篇就够了 2023-01-24
    2025入门黑客技术必读书籍(非常全面)带你从小白进阶大佬!收藏这篇就够了 2023-01-24
    2025大语言模型入门该怎么学?零基础入门到精通,收藏这篇就够了 2023-01-24
    2025年3月全国计算等级考试(报名操作指南)从零基础到精通,收藏这篇就够了! 2023-01-24
    2025年中国云计算市场四大趋势前瞻,从零基础到精通,收藏这篇就够了! 2023-01-24