打开IDEA → New Project → Spring Initializr,按以下配置:
点击Next,勾选以下依赖后Finish:
打开src/main/resources/application.properties,清空后复制以下内容:
```properties 数据库配置 spring.datasource.url=jdbc:mysql://localhost:3306/xwcb_archive?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=Admin@123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver JPA配置 spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect 端口配置 server.port=8080 ```打开MySQL Workbench/Navicat,连接后执行以下SQL:
```sql CREATE DATABASE xwcb_archive DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ```在com.xwcb.archive下创建entity、controller、service、repository四个包。
entity/Archive.java:
```java package com.xwcb.archive.entity; import jakarta.persistence.; import lombok.Data; @Entity @Table(name = "t_archive") @Data public class Archive { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // 档案编号(新闻出版专用:GB/T 7159-2019 可自定义前缀) @Column(nullable = false, unique = true, length = 30) private String code; // 档案名称 @Column(nullable = false, length = 100) private String name; // 档案类型:0-图书 1-报纸 2-期刊 3-音像制品 @Column(nullable = false) private Integer type; // 责任者 @Column(nullable = false, length = 50) private String author; // 出版时间 @Column(nullable = false, length = 20) private String publishDate; // 存放位置 @Column(nullable = false, length = 50) private String location; } ```repository/ArchiveRepository.java:
```java package com.xwcb.archive.repository; import com.xwcb.archive.entity.Archive; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface ArchiveRepository extends JpaRepository
service/ArchiveService.java:
```java package com.xwcb.archive.service; import com.xwcb.archive.entity.Archive; import com.xwcb.archive.repository.ArchiveRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class ArchiveService { @Autowired private ArchiveRepository archiveRepository; // 新增档案 public Archive save(Archive archive) { return archiveRepository.save(archive); } // 查看所有档案 public Listcontroller/ArchiveController.java:
```java package com.xwcb.archive.controller; import com.xwcb.archive.entity.Archive; import com.xwcb.archive.service.ArchiveService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("/api/archive") @CrossOrigin(origins = "") // 允许跨域 public class ArchiveController { @Autowired private ArchiveService archiveService; // 统一返回格式 private Map点击IDEA右上角ArchiveApplication启动类的绿色三角形,启动后端。
打开cmd,切换到后端项目同级目录,执行:
```bash npm create vite@latest archive-ui -- --template vue cd archive-ui npm install npm install element-plus axios ```打开src/main.js,清空后复制:
```javascript import { createApp } from 'vue' import './style.css' import App from './App.vue' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' import axios from 'axios' const app = createApp(App) app.config.globalProperties.$axios = axios.create({ baseURL: 'http://localhost:8080/api/archive' }) app.use(ElementPlus) app.mount('app') ```打开src/App.vue,清空后复制:
```vue在archive-ui目录下的cmd执行:
```bash npm run dev ```复制输出的Local地址(如http://localhost:5173/)到浏览器打开,即可使用。
档案整理行业认证,这玩意儿到底是不是你的职场“硬通货”?