Logo

郎哥编程

基于SpringBoot构建ebook项目

2022-03-25 290

Spring Boot内置SSM开发框架,减少了开发者使用Spring、Mybatis、MVC开发框架的难度,降低了集成多个开发框架的复杂性,只需要少量的配置代码,就能让项目运行起来。

ebook项目采用IntelliJ IDEA 2021版本,为方便读者构建项目,请读者下载同样的版本。

1、构建ebook项目

下面给出构建ebook项目的具体步骤。

(1)启动IDEA,在没打开任何项目的情况下,单击“New Project按钮”。如图6-1所示。

01.png

图 6-1 IDEA欢迎页面

在打开项目的情况下,选择“File—>New—>Project”命令。如图6-2所示。

02.png

图 6-2 新建Project项目

(2)左侧窗口项目类型选择“Spring Intializr”,右侧窗口输入项目信息,“Name”对应项目的名称,“Location”对应项目的存储位置,项目类型选择“Maven”,“Group”是项目组织的标识符,实际对应的是Java二级包的结构,“Artifact”是项目的标识符,对应项目的根目录,“Package name”对应的是Java三级包结构,JDK选择1.8版本,Java版本选择8,单击“Next”按钮。如图6-3所示。

03.png

图 6-3 创建ebook项目

(3)图6-4所示的对话框用于集成开发框架,“web”框架勾选Spring Web,该框架内置了MVC,“SQL”框架勾选JDBC API、MybatisFramework、MySQL Driver。单击“Finish”按钮,Template Englines勾选Thymeleaf,完成项目创建。

04.png

图 6-4 选择集成框架

创建完成,项目结构如图6-5所示。“EbookApplication”是启动类,“application.properties”是配置文件。“Java”目录存储Java代码,“resources”目录存储项目资源文件。

05.png

图 6-5 ebook项目结构

2、 建立目录

分别在“com.milihua.ebook”包下建立controller、dao、pojo、service包。在“resource”目录下建立mapper目录。目录结构如图6-6所示。

06.png

图 6-6项目结构

3、 配置数据库

在“5.3节解读Mybatis数据库开发框架”中,我们了解了MyBatis的数据层技术架构。MyBatis会自动创建三类文件:一类文件是实体文件,也就是每个数据库表对应的类文件,该类文件一般存放到pojo目录下;一类文件是数据层接口文件,由业务层的业务类调用,该类文件一般存放到dao目录;一类文件是mapper文件,mapper文件是XML文件,该文件是DAO接口的实现文件,该类文件一般存放到mapper目录。

MyBatisGenerator插件可以自动生成相关代码,该插件并没有集成到MyBatis框架内,需要在pop.xml文件配置该插件,在<dependencies>节点内插入下面的代码。

<!-- mysql自动生成实体类-->
 <dependency>
     <groupId>org.mybatis.generator</groupId>
     <artifactId>mybatis-generator-core</artifactId>
     <version>1.3.5</version>
 </dependency>

配置完成后,单击窗口右侧Maven标签项,展开Maven管理窗口,单击“Reload All Maven Projects”即可完成依赖文件的下载。

建立MyBatis代码自动生成类,该类调用MyBatis的MyBatisGenerator类来自动生成数据库操作类和XML映射文件。在ebook项目的src目录com.milihua.ebook包下新建util包,在util包下新建GeneratorUtil.java类文件。

程序清单6.1 GeneratorUtil.java

package com.milihua.ebook.util;
import org.mybatis.generator.api.ShellRunner;
public class GeneratorUtil {
    public static void main(String[] args) {
        args = new String[]{"-configfile", "src\\main\\resources\\mybatis-generator.xml", "-overwrite"};
        ShellRunner.main(args);
    }
}

代码自动生成插件需要从配置文件中读取数据库的访问地址、登录账号和密码,还需要从配置文件中读取数据库的哪些表需要生成entity类、DAO接口类和Mapper实现类,以及这些类存储到什么位置。配置文件为mybatis-generator.xml,在项目的resources目录下新建mybatis-generator.xml文件。

配置文件清单  mybatis-generator.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration   PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"   "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <!-- 这个注释是generator的注释。不是建表时手输的,没什么卵用-->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/ebook?characterEncoding=utf-8&serverTimezone=UTC"
                        userId="root" password="123456">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- 设置Java类生成的位置 -->
        <javaModelGenerator targetPackage="com.milihua.ebook.pojo"
                            targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置 ***mapper.xml-->
        <sqlMapGenerator targetPackage="mapper"
                         targetProject=".\src\main\resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置 ***mapper.java-->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.milihua.ebook.dao" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        <!-- 所有要生成的表名 -->
        <table tableName="mbook"></table>
        <table tableName="morder"></table>
        <table tableName="muser"></table>
        </context>
</generatorConfiguration>

注意:配置文件的数据库访问路径和相关物理路径,与数据库部署和项目路径有关,请根据数据库部署和项目路径情况修改。

配置文件配置完成后,运行GeneratorUtil类文件。GeneratorUtil类会根据配置文件内容自动创建数据库操作类和XML映射文件。如图6-22所示。

07.png

图 6-7 插件自动创建的类文件

4、 编辑配置文件

resource目录下的“application.properties”为项目的配置文件,在配置文件内可以配置数据库的连接、包扫描路径等配置项。

配置文件清单 application.properties

#数据库相关配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/ebook?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
 
#Mybatis配置
#配置映射文件
mybatis.mapper-locations=classpath:mapper/*.xml
#配置实体类
mybatis.type-aliases-package=com.milihua.ebook.pojo
 
# servlet配置
server.tomcat.uri-encoding=UTF-8
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
spring.messages.encoding=UTF-8

 

5、 配置应用类

com.milihua.ebook包下的“EbookApplication.java”是项目的应用类,运行该类即可启动SpringBoot服务。

需要在该类配置Mybatis的DAO接口扫描路径,配置代码如下:

@SpringBootApplication
@MapperScan("com.milihua.ebook.dao")
public class EbookApplication {
    public static void main(String[] args) {
        SpringApplication.run(EbookApplication.class, args);
    }
}

6、运行SpringBoot服务

所有配置完成后,运行“EbookApplication.java”,就可以启动SpringBoot服务了。在浏览器输入“localhost:8080”,可以看到SpringBoot因找不到默认映射页面而返回的错误页面。

若8080端口被其它程序占用,服务器启动会失败,在这种情况下,修改application.properties配置文件,在servlet配置节下面添加下面的语句:

server.port=8089

将服务端口修改为8089或其它端口号。

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论