这个全栈项目采用SpringBoot+Vue3+MyBatis技术栈,实现了对当代中国文学领域获奖作家信息的数字化管理。系统前后端完全分离,前端使用Vue3组合式API开发,后端基于SpringBoot构建RESTful接口,数据持久层采用MyBatis框架操作MySQL数据库。
提示:系统特别设计了作家获奖信息的多维度关联查询,支持按文学奖项级别、创作体裁、地域分布等特征进行统计分析,为文学研究机构提供数据支撑。
Vue3作为主流渐进式框架,在本项目中主要体现三大优势:
典型组件代码结构示例:
javascript复制// 作家详情组件
const authorData = ref(null)
const loadData = async (id) => {
authorData.value = await api.getAuthorDetail(id)
}
SpringBoot 2.7.x版本提供以下核心功能:
MyBatis动态SQL示例:
xml复制<select id="selectByAward" resultMap="AuthorMap">
SELECT * FROM authors
<where>
<if test="awardType != null">
AND award_type = #{awardType}
</if>
</where>
</select>
sql复制CREATE TABLE `authors` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL COMMENT '作家姓名',
`gender` ENUM('男','女') COMMENT '性别',
`birth_place` VARCHAR(100) COMMENT '出生地',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `awards` (
`id` INT NOT NULL AUTO_INCREMENT,
`author_id` INT NOT NULL,
`award_name` VARCHAR(100) NOT NULL COMMENT '奖项名称',
`year` YEAR NOT NULL COMMENT '获奖年份',
PRIMARY KEY (`id`),
FOREIGN KEY (`author_id`) REFERENCES authors(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
前端采用Element Plus表格组件实现:
后端接口设计规范:
code复制GET /api/authors?page=1&size=10
POST /api/authors
PUT /api/authors/{id}
DELETE /api/authors/{id}
使用ECharts实现可视化:
yaml复制# application-prod.yml
spring:
datasource:
url: jdbc:mysql://prod-db:3306/literature?useSSL=false
username: prod_user
password: ${DB_PASSWORD}
redis:
host: redis-server
port: 6379
java复制@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*");
}
}
这个系统在实际开发中,我发现MyBatis的TypeHandler特别适合处理作家创作体裁的枚举转换,而Vue3的setup语法糖让组件逻辑组织更加清晰。对于文学奖项这类层级数据,建议使用树形结构存储,便于实现多级分类查询。