idea springboot+uni-app项目报错解决

文章列举了数据库不存在、@Autowired报错、null指针异常、缺失参数、跨域请求失败、组件生命周期问题和依赖找不到等编程常见问题,并提供了相应的解决方法,如检查数据库配置、添加注解、设置CORS策略和动态调整uni-appSwiper组件高度等。
摘要由CSDN通过智能技术生成

数据库不存在

报错

DBMS: MySQL (no ver.)
Case sensitivity: plain=mixed, delimited=exact
[42000][1049] Unknown database 'datasystem'.

解决方法

1、检查数据库的用户名和密码有无错误
2、检查数据库名有无错误
3、如果之前有安装禅道,搜索栏搜索“服务”,找到mysqlzt,将其属性改为手动并停止运行

@Autowired报错

报错

必须在有效 Spring Bean 中定义自动装配成员(@Component|@Service|) 

解决方法

在类前加@Component或Service

null指针错误

报错

java.lang.NullPointerException: null

解决方法

通过测试方法调试确定了没有注入mapper,此时usermapper为空
在这里插入图片描述
检查确定是UserMapper前没有加注解@mapper,加上就没事了。建议检查service\mapper\controller\entity类有无添加对应的注解@service\mapper\recontroller\component
在这里插入图片描述

required string parameter 'XXX’is not present

报错

required string parameter 'XXX’is not present 

检查没有获得参数

解决方法

将@RequestParam替换成@RequestBody
在这里插入图片描述

原因参考@RequestBody详解

跨域请求失败

报错

Access to XMLHttpRequest at from origin  been blocked by CORS policy: Response to preflight request 

解决

1、前端(参考uni-app跨域请求)
这篇文章中的两种我都设置了,只设置一种报错仍然存在
2、后端
新建CorsConfig类

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration // 一定不要忽略此注解
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") // 所有接口
                .allowCredentials(true) // 是否发送 Cookie
                .allowedOriginPatterns("*") // 支持域
                .allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"}) // 支持方法
                .allowedHeaders("*")
                .exposedHeaders("*");
    }
}

组件onLoad\onShow无效

组件生命周期没有onLoad和onShow,如果要在组件加载时进行一些操作,建议在组件中使用mounted,例如我需要在组件top.vue中初始化两个值
在这里插入图片描述

找不到依赖项 ‘com.alibaba:fastjson:1.2.28’

报错

使用maven组织项目,在pom文件中导入依赖后,pom文件依然报错。

解决方法

通过云仓库查看依赖项是否存在。例如我这里使用的aliyun,通过这个网址搜索查看依赖项的版本信息是否正确
在这里插入图片描述
确定没有问题后,再次加载依赖,我使用的是idea,其他软件如果找不到重新加载方法,可以直接关闭程序,重新打开。
在这里插入图片描述

uni-app Swiper滑块页面高度自适应

解决方法

参考uni-app动态改变swiper滑块高度
获取组件的高度,动态设置页面高度

<swiper :current="subjectIndex" class="swiper-box" @change="SwiperChange" :style="{'height':swiperHeight+'px'}" >
				<swiper-item v-for="(subject,index) in subjectList">
					<!-- <scroll-view scroll-y="true" style="height: auto;"> -->
						<view v-if="index-subjectIndex>=-1&&index-subjectIndex<=1" :id="'content-wrap'+index">
						内容
						</view>
				</swiper-item>
</swiper>
<script>
	export default {
		data() {
			return {
				subjectIndex: 0,//跳转索引
				swiperHeight: 800,//
		},
		onLoad() {
			
			this.currentType = this.subjectList[0].type;
			
			//动态设置swiper的高度,使用nextTick延时设置
			this.$nextTick(() => {
				this.setSwiperHeight();
			});
		},
		methods: {
			
			SwiperChange: function(e) { //滑动事件
				let index = e.target.current;
				if (index != undefined) {
					this.subjectIndex = index;					
				}
				//动态设置swiper的高度,使用nextTick延时设置
				this.$nextTick(() => {
					this.setSwiperHeight();
				});							
			},
			//动态设置swiper的高度
			setSwiperHeight() {
			  let element = "#content-wrap" + this.subjectIndex;
			  let query = uni.createSelectorQuery().in(this);
			  query.selectAll(element).boundingClientRect();
			  query.exec((res) => {
				if (res && res[0]) {
					this.swiperHeight = res[0][0].height+100;
					console.log(this.swiperHeight);
				}
			  });
			},
		}
	}
</script>

如果滑块的内容是变化的,则在变化之后重新调用一次函数就行

//动态设置swiper的高度,使用nextTick延时设置
this.$nextTick(() => {
	this.setSwiperHeight();
});		
1. 创建SpringBoot项目 首先,在IDE中创建一个SpringBoot项目,选择Maven作为构建工具,并在pom文件中添加SpringBoot和mybatis-plus的依赖。 2. 配置数据库连接 在application.properties文件中添加数据库连接信息,包括url、username、password等。 ``` spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 3. 创建实体类和mapper 创建实体类和对应的mapper接口,使用mybatis-plus的注解来简化SQL操作。例如: ```java @Data @TableName("user") // 表名 public class User { @TableId(value = "id", type = IdType.AUTO) // id字段自增 private Long id; @TableField("name") // name字段 private String name; @TableField("age") // age字段 private Integer age; } ``` ```java public interface UserMapper extends BaseMapper<User> { } ``` 4. 编写业务逻辑 根据具体需求编写业务逻辑代码,例如实现对用户的增删改查操作。使用mybatis-plus的CRUD方法来简化操作。 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public boolean saveUser(User user) { return userMapper.insert(user) > 0; } @Override public boolean updateUser(User user) { return userMapper.updateById(user) > 0; } @Override public boolean deleteUser(Long id) { return userMapper.deleteById(id) > 0; } @Override public User getUserById(Long id) { return userMapper.selectById(id); } @Override public List<User> getUserList() { return userMapper.selectList(null); } } ``` 5. 编写Controller层 编写Controller层代码,处理HTTP请求并调用对应的业务逻辑方法。使用@RestController注解来标注该类是一个REST风格的控制器。 ```java @RestController public class UserController { @Autowired private UserService userService; @PostMapping("/user") public Result saveUser(@RequestBody User user) { boolean result = userService.saveUser(user); return result ? Result.success() : Result.error("保存用户失败"); } @PutMapping("/user") public Result updateUser(@RequestBody User user) { boolean result = userService.updateUser(user); return result ? Result.success() : Result.error("更新用户失败"); } @DeleteMapping("/user/{id}") public Result deleteUser(@PathVariable Long id) { boolean result = userService.deleteUser(id); return result ? Result.success() : Result.error("删除用户失败"); } @GetMapping("/user/{id}") public Result getUserById(@PathVariable Long id) { User user = userService.getUserById(id); return Result.success(user); } @GetMapping("/user") public Result getUserList() { List<User> userList = userService.getUserList(); return Result.success(userList); } } ``` 6. 测试接口 启动SpringBoot应用程序,使用Postman等工具测试接口,确认接口功能正常。 以上便是搭建SpringBoot mybatis-plus项目的基本流程。通过使用mybatis-plus来简化SQL操作,可以极大的提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值