IDEA上如何一步步搭建简单的Spring Boot+MyBatis项目(初学者篇)

本文作者参考网上博客学习Spring Boot+MyBatis时,因实际操作与原文有分歧,重新整理搭建过程。介绍了开发工具,详细阐述新建工程、引入maven依赖、配置核心文件等步骤,最终完成框架搭建并成功启动项目,可查询数据库用户数据。

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

说明:
本文是本人在参考网上他人的博客学习Spring Boot+MyBatis过程中,发现实际操作时与原文中的介绍存在一些分歧,于是重新整理自己的搭建过程并记录下。初学者可以学习借鉴

这个是我参考的博客的地址: https://www.cnblogs.com/Mcorleon/p/8006469.html
开发工具:IDEA、JDK:1.8、MySQL:8.0.13

1.新建工程
在这里插入图片描述
在这里插入图片描述
这里可以值勾选web选项
在这里插入图片描述
这里填写的是项目保存的地址和项目名
在这里插入图片描述
下面是项目结构
在这里插入图片描述
2.在pom.xml文件中引入maven依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>

  <groupId>com.example</groupId>
  <artifactId>demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>demo</name>
  <description>Demo project for Spring Boot</description>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <mybatis-spring-boot.version>1.2.0</mybatis-spring-boot.version>
    <mysql-connector.version>8.0.13</mysql-connector.version>
  </properties>

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

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

    <!--在Spring Boot中使用mybatis的依赖包-->
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>${mybatis-spring-boot.version}</version>
    </dependency>

    <!--通过JDBC连接数据库是的依赖包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>${mysql-connector.version}</version>
    </dependency>

    <!--将Object类型的数据转为JSON格式的数据-->
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.8.5</version>
    </dependency>
  </dependencies>
  
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

对于pom.xml文件,网上的介绍是:POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。
我个人的理解:把我们的项目比作是商场里买来的电器,pom.xml就是对它功能介绍的一个说明书,只不过这个说明书不是给开发者或者使用者看的,是给电脑解读用的。

3.配置核心文件

server.port=9090
#视图层控制 用mvc方式访问templates下的HTML
spring.mvc.view.prefix=classpath:/templates/
spring.mvc.view.suffix=.html
spring.mvc.static-path-pattern=/static/**

spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
#开发时关闭缓存,不然没法看到实时页面
spring.thymeleaf.cache=false
#thymeleaf这样配置就可以直接访问static下的HTML(和mvc访问方式二选一)
spring.thymeleaf.prefix = classpath:/static/
spring.thymeleaf.suffix = .html

spring.datasource.url=jdbc:mysql://localhost:3306/graduation?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=12345678
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.typeAliasesPackage=com.example.demo.model
#解决实体类使用驼峰命名法与数据库带下划线的命名不同的问题
mybatis.configuration.mapUnderscoreToCamelCase=true

注: 由于我的mysql版本是8.0+的,所以spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver。mysql8.0以下的版本使用的是spring.datasource.driver-class-name=com.mysql.jdbc.Driver。

4.创建数据库
这个我就不详细介绍了,目前只是做个测试,随便建个简单的user表即可。

5.在model包中创建实体类User

package com.example.demo.model;

import java.util.Date;

public class User {
    private String id;
    private String userName;
    private String password;
    private String nickName;
    private Integer sex;
    private String phone;
    private Integer role;
    private Date creatTime;
    private Date modifyTime;
    
    public User() {}
    
    public User(String id, String userName, String password, String nickName, Integer sex, String phone, Integer role, Date creatTime, Date modifyTime) {
        this.id = id;
        this.userName = userName;
        this.password = password;
        this.nickName = nickName;
        this.sex = sex;
        this.phone = phone;
        this.role = role;
        this.creatTime = creatTime;
        this.modifyTime = modifyTime;
    }

    public String getId() {
        return id;
    }

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

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Integer getRole() {
        return role;
    }

    public void setRole(Integer role) {
        this.role = role;
    }

    public Date getCreatTime() {
        return creatTime;
    }

    public void setCreatTime(Date creatTime) {
        this.creatTime = creatTime;
    }

    public Date getModifyTime() {
        return modifyTime;
    }

    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", userName='" + userName + '\'' +
                ", password='" + password + '\'' +
                ", nickName='" + nickName + '\'' +
                ", sex=" + sex +
                ", phone='" + phone + '\'' +
                ", role=" + role +
                ", creatTime=" + creatTime +
                ", modifyTime=" + modifyTime +
                '}';
    }
}

6.在mapper包下创建UserMapper

package com.example.demo.mapper;

import com.example.demo.model.User;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

@Repository
public interface UserMapper {
    @Select("SELECT * FROM User WHERE id = #{id}")
    User selectUser(String id);
}

7.在service包下创建Userservice

package com.example.demo.service;

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

@Service
public class UserService implements UserMapper {
    @Autowired
    UserMapper userMapper;

    @Override
    public User selectUser(String id) {
        return userMapper.selectUser(id);
    }
}

8.在controller包下创建UserController

package com.example.demo.controller;

import com.example.demo.model.User;
import com.example.demo.service.UserService;
import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

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

    @RequestMapping("/showUser/{id}")
    public String selectUser (@PathVariable String id){
        Gson gson = new Gson();
        User msg =  userService.selectUser(id);
        return gson.toJson(msg);
    }
}

9.对自动生成的启动类DemoApplication稍作修改

package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.example.demo.mapper")
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

这样几个步骤下来一个基本的Spring Boot+MyBatis框架就搭建完成啦,让我运行一下启动项测试一下吧。
可以点击启动类main函数左侧的绿色小箭头启动项目
在这里插入图片描述
控制台没有报错,启动成功
在这里插入图片描述
那我们就可以打开浏览器,在地址栏输入 http://localhost:9090/showUser/1 就可以查询到我数据库中id为1的用户的数据啦。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值