idea+springboot+mybatis+pagehelper分页+log4j

本文详细介绍了使用IntelliJ IDEA创建Spring Boot项目的步骤,包括选择配置、添加依赖、修改配置文件等。还阐述了Spring Boot整合MyBatis、使用PageHelper进行分页以及整合Log4j的具体操作,每个步骤后都有使用Postman进行测试的说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.打开IntelliJ IDEA  File->new->project->Spring Initializr,选择jdk后下一步

 

2.更改Group+Artifact,选择java Version,我这里选择默认

 

3.这里只选择web

 

4. 更改项目名和项目路径

 

5.完成后的项目结构

6.添加maven依赖包,将下面的依赖复制到pom.xml文件中

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.0.1</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

 

7.把application.properties 改为application.yml,后在该文件中添加配置属性

修改启动的端口号,配置数据库连接,注意冒号后面一定要有空格

 

8.测试能否跑起来,在com.example.demo下建立controller 包,在包下新建一个DemoController 类

 

9.在DemoController 里添加一个test方法

package com.example.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DemoController {
    @RequestMapping(value = "/test",method = RequestMethod.POST)
    public String test(String name){
        return name;
    }
}

 

10.使用postman 进行测试

 

11.整合mybatis

 

1.添加maven依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.0.1</version>
</dependency>

2.在数据库新建user表



3.在com.example.demo 下新建entity 包,在该包下建立User类

package com.example.demo.entity;

public class User {
    private Integer id;
    private String name;
    private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

 

5.在resources资源包下建立mapping文件夹,在该文件夹下新建UserMapping.xml文件

 

6.在com.example.demo下新建mapper 包,在该包下新建UserMapper 接口

 

7.填写UserMapping.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
    <resultMap id="BaseResultMap" type="com.example.demo.entity.User">
        <result column="id" jdbcType="INTEGER" property="id" javaType="Integer"></result>
        <result column="name" jdbcType="VARCHAR" property="name" javaType="String"></result>
        <result column="age" jdbcType="INTEGER" property="age" javaType="Integer"></result>
        
    </resultMap>
    <select id="getUserList" resultType="com.example.demo.entity.User">
        select * from user
    </select>
</mapper>

8.填写UserMapper.java

package com.example.demo.mapper;

import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface UserMapper {
    List<User> getUserList();//这里的方法名和xml定义的要一致
}

 

9.在com.example.demo 下新建service包,在该包下新建UserService类

package com.example.demo.service;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;//注入UserMapper,这里的警告不用管

    public List<User> getUserList(){
        return userMapper.getUserList();
    }
}

 

10.在DemoController 添加以下代码

 

package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class DemoController {
    @Autowired
    private UserService userService;

    @RequestMapping(value = "/test",method = RequestMethod.POST)
    public String test(String name){
        return name;
    }

    @RequestMapping(value = "/getUserList",method = RequestMethod.POST)
    public List<User> getUserList(){
        return userService.getUserList();
    }
}

 

11.在postman进行测试

 

12.以上springboot 整合mybatis完毕

 

13.使用pagehelper 进行分页

1.添加maven 依赖

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.10</version>
</dependency>

2.在application.yml内配置pagehelper

pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count=countSql
  page-size-zero: true

3.在DemoController.java 中添加下面代码

 

@RequestMapping(value = "/getUserListPage",method = RequestMethod.POST)
public PageInfo<User> getUserListPage(Integer pageNum,Integer pageSize){
    PageHelper.startPage(pageNum,pageSize);
    List<User> users=userService.getUserList();
    PageInfo<User> pageInfo=new PageInfo<>(users);
    return pageInfo;
}

 

4.在postman中测试

 

5.至此pagehelper 整合完成

 

整合log4j

 

1.添加maven依赖

 

2.在resources文件下新建log4j.properties

 

3.在DemoController 中添加以下代码

package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class DemoController {
    protected Logger log = Logger.getLogger(this.getClass());

    @Autowired
    private UserService userService;

    @RequestMapping(value = "/test",method = RequestMethod.POST)
    public String test(String name){
        log.info("进入了test方法。。。");
        return name;
    }

 

4.在postman上测试结果如下

 

 

 

<think>嗯,用户这次问的是如何用IDEA2021搭建SpringBootMybatis环境,看起来是个具体的实操问题。用户特意强调了"具体步骤或配置方法",还提到参考三个站内引用,说明需要很落地的指导。用户可能是个Java后端开发初学者,正在尝试搭建企业级开发框架。从引用内容看,他应该已经看过一些教程,但需要更系统化的步骤梳理,尤其是配置细节容易出错的部分。用户上次的问题被系统过滤了,但当前需求很明确——要可操作的搭建指南。三个引用都提到核心要点:1)IDEA创建项目时选SpringInitializr2)Mybatis和MySQL依赖勾选3)application配置格式选择4)数据源配置。不过引用3的yml配置样例特别实用,用户可能更需要这种直接可复用的配置片段。需要特别注意两点技术细节:1关于配置格式,引用2提到.properties转.yml的特性,这个可以提醒用户避免混淆2引用3提到Mybatis映射文件路径的坑,这个在步骤里要重点标注用户似乎对密码明文存放有顾虑,但没直接说。所以最后补充配置安全建议时,特意提了jasypt的方案,作为增值点。工程实践部分加了分页插件和log-impl调试配置,因为实际开发绝对用得上。这个用户应该是务实型,回答要像技术文档那样精确。所以连MySQLConnector版本冲突这种高频问题都提前预警了。代码块里故意保留password字段提示修改,比写"your_password"更醒目。</think> 以下是针对 **IntelliJ IDEA 2021** 搭建 **Spring Boot + MyBatis** 开发环境的具体步骤与配置方法,整合关键配置项并优化流程: --- ### **详细步骤** #### **1. 创建Spring Boot项目** - **操作路径**: `File` → `New` → `Project` → `Spring Initializr` → 选择JDK版本(如JDK 11)→ 设置项目元数据(Group/Artifact) - **依赖选择**: ☑️ `Spring Web`、☑️ `MyBatis Framework`、☑️ `MySQL Driver`(根据数据库选驱动) #### **2. 配置数据源 & MyBatis** - **配置文件位置**:`src/main/resources/application.yml` ```yaml server: port: 8080 # 自定义端口 spring: datasource: url: jdbc:mysql://localhost:3306/your_db?useSSL=false&serverTimezone=UTC username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver mybatis: mapper-locations: classpath:mapper/*.xml # 指定Mapper映射文件路径 configuration: map-underscore-to-camel-case: true # 开启字段驼峰转换 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 输出SQL日志 ``` #### **3. 创建核心代码结构** ```lua src/main/java └── com.example.demo ├── DemoApplication.java # 启动类 ├── controller │ └── UserController.java # 控制器 ├── mapper │ ├── UserMapper.java # Mapper接口 │ └── UserMapper.xml # XML映射文件(resources/mapper/) ├── service │ └── UserService.java # 业务接口 └── entity └── User.java # 实体类 ``` #### **4. 关键代码示例** - **实体类** `User.java`: ```java @Data // Lombok注解(需引入依赖) public class User { private Integer id; private String userName; } ``` - **Mapper接口** `UserMapper.java`: ```java @Mapper // 声明为MyBatis组件 public interface UserMapper { List<User> selectAllUsers(); } ``` - **XML映射文件** `UserMapper.xml`: ```xml <?xml version="1.0" encoding="UTF-8"?> <mapper namespace="com.example.demo.mapper.UserMapper"> <select id="selectAllUsers" resultType="User"> SELECT id, user_name FROM user </select> </mapper> ``` - **Service层调用**: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public List<User> getAllUsers() { return userMapper.selectAllUsers(); } } ``` #### **5. 测试与启动** 1. 创建MySQL数据库表 `user`(字段 `id`, `user_name`) 2. 在启动类添加 `@MapperScan("com.example.demo.mapper")` 扫描Mapper包 3. 运行 `DemoApplication`,访问接口验证(如 `http://localhost:8080/users`) --- ### **避坑指南** 1. **驱动版本冲突**: 若启动报 `No suitable driver`,检查 `pom.xml` 中MySQL驱动版本(推荐 `mysql-connector-java:8.0.x`)。 2. **XML文件未被扫描**: 确认 `application.yml` 中 `mybatis.mapper-locations` 路径与实际匹配。 3. **SQL日志不输出**: 确保配置 `log-impl: org.apache.ibatis.logging.stdout.StdOutImpl`。 4. **字段映射失败**: 开启 `map-underscore-to-camel-case` 解决 `user_name` → `userName` 映射问题。 --- ### **工程实践建议** - **分页插件**:集成 `PageHelper` 简化分页查询 - **Druid连接池**:替换默认连接池提升性能 - **敏感配置加密**:使用 `jasypt` 加密数据库密码 - **多环境配置**:通过 `application-dev.yml` 隔离环境 [^1]: Spring Boot的自动配置机制大幅简化了数据源与ORM框架的集成流程 [^2]: MyBatis的XML映射文件需严格匹配接口方法与命名空间 [^3]: 配置`map-underscore-to-camel-case`可避免手动编写ResultMap的繁琐操作 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值