IDEA创建springboot+mybatis项目(java8 和java21可行)

IDEA创建springboot+mybatis项目(java8 和java21可行)

今天博主讲一下,IDEA创建springboot+mybatis项目的文章。

步骤分别是如下几步:

1. 创建maven项目

2. 配置pom.xml文件

3. 创建目录结构

4. 创建配置项目文件

5. 生成创建数据库,并创建表

6. 创建测试实例并测试

首先,我们来看一下最终项目的框架结构,防止大家配置过程中是否漏了文件,另外,如果有的配置文件博主没有附上代码,可以评论告知我。

1. 创建maven项目

点击file 选择project 选择spring initializr项目

点击next

填写groupid和artifactId:

groupid和artifactId被统称为"坐标"是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。

groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。

比如我创建一个项目,我一般会将groupId设置为cn.snowin,cn表示域为中国,snowin是我个人姓名缩写,artifactId设置为testProj,表示你这个项目的名称是testProj,依照这个设置,你的包结构最好是cn.zr.testProj打头的,如果有个StudentDao,它的全路径就是cn.snowin.testProj.dao.StudentDao

注意 Type一定要选择Maven类型

如果你本机安装java21就选 21 本机安装8就选8 安装17就选17 。

点击next:

开始选择配置项;


如果你想用mysql和mybatis框架选这两个就行。

然后点击next,最后创建好之后:

2. 配置pom.xml文件

配置pom.xml文件:

注意 <java.version>1.8</java.version> 如果你是java21 也要这么写,否则,springframework版本会和java21冲突,当然你可以提高springframework版本。但是推荐2.x版本

xml 复制代码
<?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 https://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.4.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>org.suncaper</groupId>
    <artifactId>spnaims</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spnaims</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <spring-modulith.version>1.1.0</spring-modulith.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>


        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.modulith</groupId>
                <artifactId>spring-modulith-bom</artifactId>
                <version>${spring-modulith.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>1.18.30</version>
                            <scope>provided</scope>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

3. 创建目录结构

创建controller dao domain service mapper impl 五个package或者文件夹

4. 配置项目文件

首先创建mybatis.xml文件,但是这个文件先不用,可以后期自行配置

然后我们主要配置

application.properties文件

bash 复制代码
mybatis.type-aliases-package=com.suncaper.spnaims
#mysql驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#远程数据库链接 serverTimezone不可少
#emps为我们的数据库名字

spring.datasource.url=jdbc:mysql://localhost:3306/emps?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
#MySQL数据库用户名、密码
spring.datasource.username=root
#自行更改密码
spring.datasource.password=123456
#xml格式的mapper文件位置

#mybatis文件读取配置,很重要哈
mybatis.mapper-locations=classpath:/mapper/*.xml

5. 生成创建数据库,并创建表

创建数据库

bash 复制代码
create database emps;

创建数据表

bash 复制代码
use emps;
 create table student( sno int,sname varchar(20) ,sage int);

数据表生成结构如下:

我们可以自行插入几个数据进行测试。

6. 创建测试实例并测试

配置mapper文件:

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 = "org.suncaper.spnaims.dao.StudentMapper">

<insert id="insert" parameterType="org.suncaper.spnaims.domain.Student" >
        INSERT INTO student (Sno,Sname,Sage) VALUES (#{sNo},#{sName},#{sAge})
    </insert>
    <select id="select" parameterType="int" resultType="org.suncaper.spnaims.domain.Student">
        select *  from student
    </select>
</mapper>

分别创建如下接口和类文件:

StudentController.class

java 复制代码
package org.suncaper.spnaims.controller;

import org.suncaper.spnaims.domain.Student;
import org.suncaper.spnaims.dao.StudentMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.suncaper.spnaims.service.IStudentService;

import java.util.ArrayList;

@RestController
public class StudentController {
    @Autowired()
    private IStudentService studentService;
    @RequestMapping("/")
    public String index() throws Exception {
        studentService.insert(new Student(2, "张三", 18));
        return "OK";
    }

    @RequestMapping("/showdata")
    public String showdata() throws Exception {
        String s=studentService.select(2);
        String data="the sql of student is:";

        return s;
    }
}

StudentMapper接口文件:

java 复制代码
package org.suncaper.spnaims.dao;

import org.suncaper.spnaims.domain.Student;
import org.apache.ibatis.annotations.Mapper;

import java.util.ArrayList;

@Mapper
public interface StudentMapper {
    void insert(Student student);
    void delete(String sNo);
    Student selectByNumber(Integer sNo);
    void updateName(Student student);
    ArrayList<Student> select(int id);
}

Student类:

java 复制代码
public class Student {
    public int sNo;
    public String sName;
    public int sAge;
    public Student(int sNo, String sName, int sAge) {
        this.sNo = sNo;
        this.sName = sName;
        this.sAge = sAge;
    }
    public String toString(){
        return "id:"+sNo+"name:"+sName+"age:"+sAge;

    }
    //Getter、Setter方法,我省略了,你在代码中别省略
}

StudentServiceImpl类:

java 复制代码
package org.suncaper.spnaims.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.suncaper.spnaims.dao.StudentMapper;
import org.suncaper.spnaims.domain.Student;
import org.suncaper.spnaims.service.IStudentService;

import java.util.ArrayList;

@Service
public class StudentServiceImpl implements IStudentService {
    @Autowired()
    private StudentMapper studentMapper;
    public String select( int id){
        ArrayList<Student> students=studentMapper.select(id);
        String data="the sql of student is:";
        for (Student user:students
        ) {
            data=data+user.toString();


        }
        return students.toString();

    }
    public  void insert(Student usr){
        studentMapper.insert(usr);
    }




}

IStudentService接口:

java 复制代码
package org.suncaper.spnaims.service;

import org.suncaper.spnaims.domain.Student;

public interface IStudentService {

    public String select(int id);



    public void insert(Student usr);

}

DemoApplication 主类:

java 复制代码
package org.suncaper.spnaims;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}

之后我们就可以运行我们的代码了

点击绿色箭头:

然后运行:

测试结果如下:

相关推荐
FREE技术6 分钟前
山区农产品售卖系统
java·spring boot
摇滚侠2 小时前
Spring Boot3零基础教程,云服务停机不收费,笔记71
java·spring boot·笔记
摇滚侠3 小时前
Spring Boot3零基础教程,监听 Kafka 消息,笔记78
spring boot·笔记·kafka
摇滚侠4 小时前
Spring Boot3零基础教程,RedisTemplate 定制化,笔记70
spring boot·笔记·后端
Scigar4 小时前
Idea的安装以及基础使用
java·intellij-idea·idea
寒山李白4 小时前
IntelliJ IDEA新版下载、安装、创建项目及Maven配置的教程(附安装包等)
java·maven·intellij-idea
刘一说4 小时前
深入浅出 Spring Boot 自动配置(Auto-Configuration):原理、机制与最佳实践
java·spring boot·后端
顽疲5 小时前
SpringBoot + Vue 集成阿里云OSS直传最佳实践
vue.js·spring boot·阿里云
摇滚侠5 小时前
Spring Boot3零基础教程,Kafka 小结,笔记79
spring boot·笔记·kafka