springboot+mybaits多模块创建项目

这里是引用

一、idea创建springboot工程

springboot是对SpringMVC框架进行封装,并且内置了tomcat。主要减少配置文件。所以我先创建父级工程:
图片: 在这里插入图片描述
在这里插入图片描述这里我们选择 maven pom
在这里插入图片描述这里直接选择最低的版本号,其他不用选择
在这里插入图片描述给父级工程起个名称。点击finish完成
在这里插入图片描述这是创建完的pom工程,并且配置上maven
在这里插入图片描述接下来创建子模块,dao service entity层
在这里插入图片描述
dao service entity层 创建maven工程。这里不用选择 直接next在这里插入图片描述
在这里插入图片描述dao service entity层创建完后。我们创建web工程也就contriller层
在这里插入图片描述
web工程需要选择project ,创建有目录的结构在这里插入图片描述注意版本一致
在这里插入图片描述
在这里插入图片描述整个子模块创建完的目录接口。
在这里插入图片描述
我们需要dao service entity层的resources删除。并且添加对应com.beta.dao, com.beta.service,com.beta.entity在这里插入图片描述
dao service entity层的pom文件大体相同在这里插入图片描述dao service entity层打成jar包
在这里插入图片描述

<build>
       <plugins>
           <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
               <configuration>
                   <!-- 打包时候会默认寻找签名是public static void main(String[] args)的方法,没有所以报错  设置为true则不会报错-->
                   <skip>true</skip>
               </configuration>
           </plugin>
       </plugins>
   </build>`

web层需要替换父级依赖,建议打包成war在这里插入图片描述父级的pom 加上web模块。
在这里插入图片描述在web添加一个controller层,并且在static目录下方张图片(方便测试),static为放置静态资源地方
在这里插入图片描述启动项目并访问静态资源
http://localhost:8080/img/2.jpg 访问成功
在这里插入图片描述访问接口成功
http://localhost:8080/query?id=11
在这里插入图片描述

二、配置mybatis

父级pom添加依赖

<dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <version>${org.projectlombok}</version>
           <scope>provided</scope>
       </dependency>
       <!-- mybatis 依赖-->
       <dependency>
           <groupId>org.mybatis.spring.boot</groupId>
           <artifactId>mybatis-spring-boot-starter</artifactId>
           <version>${mybatis.spring.boot}</version>
       </dependency>
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>${mysql.version}</version>
       </dependency>

在这里插入图片描述在web层添加entity service等依赖。同理在service 添加entity 和dao 。在dao添加entity 依赖
在这里插入图片描述在每层创建java类,service层如下
在这里插入图片描述在resources目录下创建mapper用于集中放置xml文件
在这里插入图片描述修改application.properties

# 数据库配置 根据自己数据库username和password修改
spring.datasource.username=root
spring.datasource.password=1
spring.datasource.url=jdbc:mysql://localhost:3306/yhy?serverTimezone=GMT
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

server.port=${port:8080} 
#接口的配置文件的位置 我这里接口配置文件是UserMapper.xml 如下图所示
mybatis.mapper-locations=classpath:mapper/*.xml 

在这里插入图片描述修改controller层的接口
在这里插入图片描述修改启动app
SpringBootApplication 只能扫描当前包(com.anxin.web) 所以这里需要往上扫描一级(com.anxin)
在这里插入图片描述启动项目访问接口成功
lohttp://localhost:8080/getUser?id=10
在这里插入图片描述
在这里插入图片描述

三、上文件

父级pom文件

 <?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>
    <packaging>pom</packaging>
    <modules>
        <module>dao</module>
        <module>entity</module>
        <module>service</module>
        <module>web</module>
    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.15</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.anxin</groupId>
    <artifactId>myboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>myboot</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <com.anxin>0.0.1-SNAPSHOT</com.anxin>
        <mybatis.spring.boot>1.1.1</mybatis.spring.boot>
        <mysql.version>8.0.22</mysql.version>
        <org.projectlombok>1.18.4</org.projectlombok>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${org.projectlombok}</version>
            <scope>provided</scope>
        </dependency>
        <!-- mybatis 依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis.spring.boot}</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 打包时候会默认寻找签名是public static void main(String[] args)的方法,没有所以报错  设置为true则不会报错-->
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

dao层pom文件

<?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">
    <parent>
        <artifactId>myboot</artifactId>
        <groupId>com.anxin</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>
    <artifactId>dao</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.anxin</groupId>
            <version>${com.anxin}</version>
            <artifactId>entity</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 打包时候会默认寻找签名是public static void main(String[] args)的方法,没有所以报错  设置为true则不会报错-->
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

entity 层pom文件

<?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">
    <parent>
        <artifactId>myboot</artifactId>
        <groupId>com.anxin</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>
    <artifactId>entity</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 打包时候会默认寻找签名是public static void main(String[] args)的方法,没有所以报错  设置为true则不会报错-->
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

service层pom文件

<?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">
    <parent>
        <artifactId>myboot</artifactId>
        <groupId>com.anxin</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>
    <artifactId>service</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.anxin</groupId>
            <version>${com.anxin}</version>
            <artifactId>entity</artifactId>
        </dependency>
        <dependency>
            <groupId>com.anxin</groupId>
            <version>${com.anxin}</version>
            <artifactId>dao</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 打包时候会默认寻找签名是public static void main(String[] args)的方法,没有所以报错  设置为true则不会报错-->
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

web层pom文件

<?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>
        <artifactId>myboot</artifactId>
        <groupId>com.anxin</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <groupId>com.anxin</groupId>
    <artifactId>web</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>web</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.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>com.anxin</groupId>
            <version>${com.anxin}</version>
            <artifactId>entity</artifactId>
        </dependency>
        <dependency>
            <groupId>com.anxin</groupId>
            <version>${com.anxin}</version>
            <artifactId>dao</artifactId>
        </dependency>
        <dependency>
            <groupId>com.anxin</groupId>
            <version>${com.anxin}</version>
            <artifactId>service</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

UserMapper

public interface UserMapper {
    UserDTO selectUser(@Param("id") Long id);
}

UserServiceImpl

import com.anxin.dao.UserMapper;
import com.anxin.entiey.UserDTO;
import com.anxin.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public UserDTO queryUser(Long id) {
        System.out.println("*****************");
        UserDTO userDTO=userMapper.selectUser(id);
        return userDTO;
    }
}

UserService

public interface UserService {
    public UserDTO queryUser(Long id);
}

UserController


@RestController
public class UserController {
    @Autowired
    UserService userService;

    @GetMapping("/getUser")
    @ResponseBody
    public UserDTO getUser(@RequestParam Long id){
        return  userService.queryUser(id);
    }

    @GetMapping("/query")
    @ResponseBody
    public String queryUser(@RequestParam Long id){
        return "成功访问";
    }
}

UserMapper.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.anxin.dao.UserMapper" >
    <resultMap id="BaseResultMap" type="com.anxin.entiey.UserDTO" >
            <id column="id" property="id" jdbcType="BIGINT" />
            <result column="code" property="code" jdbcType="VARCHAR" />
            <result column="name" property="name" jdbcType="VARCHAR" />
            <result column="password" property="password" jdbcType="VARCHAR" />
            <result column="phone" property="phone" jdbcType="VARCHAR" />
            <result column="code_id" property="codeId" jdbcType="VARCHAR" />
            <result column="amount" property="amount" jdbcType="DECIMAL" />
            <result column="creat_time" property="creatTime" jdbcType="DATE" />
            <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
        </resultMap>
        <sql id="Base_Column_List" >
            id, code, name, password, phone, code_id, amount, creat_time, update_time
        </sql>

    <select id="selectUser" resultType="com.anxin.entiey.UserDTO" parameterType="java.lang.Long" >
        select *  from user
        where id = #{id,jdbcType=BIGINT}
    </select>
</mapper>

application.properties

# 数据库配置 根据自己数据库username和password修改
spring.datasource.username=root
spring.datasource.password=1
spring.datasource.url=jdbc:mysql://localhost:3306/yhy?serverTimezone=GMT
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

server.port=${port:8080} 

#接口的配置文件的位置 我这里接口配置文件是UserMapper.xml 如下图所示
mybatis.mapper-locations=classpath:mapper/*.xml 

WebApplication

package com.anxin.web;

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

//SpringBootApplication 只能扫描当前包(com.anxin.web) 所以这里需要往上扫描一级
@SpringBootApplication(scanBasePackages="com.anxin")
//扫描dao层
@MapperScan(basePackages = "com.anxin.dao")
public class WebApplication {
    public static void main(String[] args) {
        SpringApplication.run(WebApplication.class, args);
    }

}

源码

后续会在此基础上 创建springcloud相关的工程

四、我的其他相关内容的博客

mybatis自带分页插件进行分页
idea创建springMVC单项目
idea创建分模块创建ssm项目

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值