当前位置: 首页 > ds >正文

建立java项目

java端:

在idea里面新建一个java,maven项目(springboot):

注意:JDK与java都得是一样的

添加基本的依赖项:

也可以在pom.xml中点击这个,从而跳转到添加依赖

建立三层架构:

在相应的java类中添加代码:

 <1.UserController

package com.example.demo.controller;import com.example.demo.pojo.Result;
import com.example.demo.pojo.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.*;/*** 用户相关接口* 这个类定义了与用户相关的所有 RESTful API 接口。*/
@Configuration
@CrossOrigin(origins = "http://localhost:5173", allowCredentials = "true")
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;/*** 创建新用户* @param user 用户对象,包含用户的基本信息* @return 返回一个 Result 对象,表示操作的结果*/@PostMapping("/add")public Result addUser(@RequestBody User user){System.out.println("创建新用户");int code = userService.insertUser(user); // 调用服务层的 insertUser 方法return Result.success(user); // 返回创建成功的用户对象}
}

<2.UserMapper

package com.example.demo.mapper;import com.example.demo.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;@Mapper // 必须保留
public interface UserMapper {// 不能有方法实现@Select("select * from user where usename=#{userName} and age =#{age}")public User getByUsernameAndPassword(User user);@Insert("insert into user(usename, age) values (#{userName}, #{age})")@Options(useGeneratedKeys = true, keyProperty = "userId") // 假设您有一个自增的主键 idpublic int createNewUser(User user);
}

<3.Result 

package com.example.demo.pojo;public class Result {private Integer code;  // 1=成功, 0=失败private String msg;    // 响应信息private Object data;   // 返回数据public Result() {}public Result(Integer code, String msg, Object data) {this.code = code;this.msg = msg;this.data = data;}// 成功(无数据)public static Result success() {return new Result(1, "success", null);}// 成功(带数据)public static Result success(Object data) {return new Result(1, "success", data);}// 失败public static Result error(String msg) {return new Result(0, msg, null);}//Get和Set方法public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}
}

<4.User

package com.example.demo.pojo;public class User {private Integer userId;private String userName;private Integer age;public User() {}public Integer getUserId() {return userId;}public void setUserId(Integer userId) {this.userId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
}

<5.UserServiceImpl

package com.example.demo.service.impl;import com.example.demo.mapper.UserMapper;
import com.example.demo.pojo.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserServiceImpl implements UserService {@Autowiredpublic UserMapper userMapper;@Overridepublic int insertUser(User user) {return userMapper.createNewUser(user);}
}

<6. UserService

package com.example.demo.service;import com.example.demo.pojo.User;public interface UserService {int insertUser(User user);
}

<7.application.properties

spring.application.name=demo2//文件名(要改)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/tesx//navicat创建的名字(要改)
spring.datasource.username=root
spring.datasource.password=______//密码
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mybatis.configuration.map-underscore-to-camel-case=true
server.port=9000//端口号(要改)

其中我的tesx名在这里:

<8.在pom.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>3.4.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.text2</groupId><artifactId>demo2</artifactId><version>0.0.1-SNAPSHOT</version><name>demo2</name><description>demo2</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</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>3.0.4</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter-test</artifactId><version>3.0.4</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><annotationProcessorPaths><path><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId></path></annotationProcessorPaths></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

<9.添加数据库这是添加好的

这是相应的步骤:

<10.测试代码(检测代码是否可以正确操作):

在idea里面配置apifox插件(就是第一个)

生成个人访问令牌,在此之前要在电脑上下好apifox,并登录:

打开apifox,点击头像,账号管理

点击新建,复制API访问令牌:

 进行测试代码,里面会填我们复制的API访问令牌

打开apifox:

java前端:

<1.在vscode里面用pnpm创建vue3的文件:

<2.在终端里面输入口令,这样前端项目就创建好了

pnpm create vue

将下面这四个口令依次复制给终端

<3.页面,点击那个链接会跳转到Vue3界面

<4.把项目中的assets,components,stores,views中的文件清空

并在App.vue里面改成下面的代码

<template><RouterView />
</template>

<5.安装 sass 依赖和Pinia - 构建用户仓库 和 持久化:

在终端输入:(安装 sass 依赖)

pnpm add sass -D

输入:(Pinia - 构建用户仓库 和 持久化)

pnpm add pinia-plugin-persistedstate -D

<6.将main.js里面修改成下面代码:

​import { createApp } from 'vue'
import { createPinia } from 'pinia'
import persist from 'pinia-plugin-persistedstate'
import App from './App.vue'
import router from './router'const app = createApp(App)app.use(createPinia().use(persist))
app.use(router)
app.mount('#app')​

在stores文件夹里面建一个文件user.js,并放入下面代码:

// 从pinia库中导入defineStore函数,用于定义一个新的store
import { defineStore } from 'pinia';
// 从vue库中导入ref函数,用于创建一个响应式引用
import { ref } from 'vue';// 定义一个名为useUserStore的store,用于管理用户相关的状态
export const useUserStore = defineStore(// store的唯一标识符,通常用于调试和持久化'user',// 一个函数,返回一个包含state和actions的对象() => {// 使用ref创建一个响应式的token变量,初始值为空字符串const name = ref(''); // 定义一个设置token的函数,该函数接收一个参数t,并将其赋值给token.value// 这样做可以确保token是一个响应式引用,并且当它的值改变时,任何依赖于它的Vue组件都会重新渲染const setName = (t) => (name.value = t); // 返回包含token和setToken的对象,这样它们就可以在store的外部被访问和使用了return { name, setName };},// store的配置对象,这里启用了持久化功能{// 设置persist为true以启用持久化,这意味着store的状态将在页面刷新或重新加载时被保存和恢复// 注意:这里只是简单地启用了持久化,但没有指定具体的持久化策略(如存储位置、密钥等)persist: true // -->持久化}// 注意:上面的代码示例中,直接使用{ persist: true }可能不会按预期工作,// 因为Pinia本身并不直接支持持久化配置。持久化通常是通过插件(如pinia-plugin-persistedstate)来实现的。// 因此,需要先安装该插件,并在Pinia配置中正确地使用它。
);

<7.接下来依次向终端复制下面口令:

axios-数据交互
pnpm add axios
element-ui组件配置
pnpm install element-plus
pnpm add element-plus
pnpm add -D unplugin-vue-components unplugin-auto-import

<8.在main.js中全局导入

这样前后端都基本完成了

http://www.xdnf.cn/news/7983.html

相关文章:

  • 免费iOS签名的能使用吗?
  • 【钱包协议】:WalletConnect 详解
  • 一步步解析 HTTPS
  • 网络安全管理之钓鱼演练应急预案
  • PCB设计教程【入门篇】——电路分析基础-元件数据手册
  • Nginx核心服务
  • 【机器学习基础】机器学习与深度学习概述 算法入门指南
  • R语言速查表
  • 什么是瞬态动力学?
  • 从芯片互连到机器人革命:英伟达双线出击,NVLink开放生态+GR00T模型定义AI计算新时代
  • ILRuntime中实现OSA
  • CAU人工智能class3 优化器
  • Python MD5加密算法脚本
  • Java线程池调优与实践经验
  • JavaScript-DOM-02
  • DS18B20 温度传感器实验探索与实践分享​
  • 深度学习Y8周:yolov8.yaml文件解读
  • Leetcode-3 判断根结点是否等于子结点之和
  • Universal Media Server (UMS)部署指南
  • HTTP相关内容
  • 【Java高阶面经:数据库篇】12. MySQL锁机制全解:从行锁到死锁优化的深度指南
  • 十七、面向对象底层逻辑-MessageSource接口设计
  • 鸿蒙开发:应用上架第二篇,申请发布证书
  • CSS 链接样式全解析:从基础状态到高级交互效果
  • Docker的网络介绍
  • canvas(二)-动画(2d)
  • 人工智能解析:技术革命下的认知重构
  • 贪心算法 Part04
  • 【VLNs篇】03:VLMnav-端到端导航与视觉语言模型:将空间推理转化为问答
  • Dirsearch 深度使用教程:从基础扫描到携带 Cookie 探索网站