JAVA学子商城项目问题集锦(springboot)

JAVA学子商城项目问题集锦

1、标签错误导致rows的值为null
文件
\store\src\main\resources\mappers\UserMapper.xml
中的update标签用错,

<!-- 更新密码 -->
	<!-- Integer updatePassword(
			@Param("uid") Integer uid,
			@Param("password") String password,
			@Param("modifieUser") String modifiedUser,
			@Param("modifiedTime") Date modifiedTime); -->
	<update id="updatePassword">
		UPDATE 
			t_user 
		SET 
			password=#{password},
			modified_user=#{modifiedUser},
			modified_time=#{modifiedTime} 
		WHERE 
			uid=#{uid}
	</update>

会导致
\store\src\main\java\cn\tedu\store\service\impl\UserServiceImpl.java
中的
Integer rows = userMapper.updatePassword(uid, newMd5Password, username, now);
的值为null!

@Override
	public void changePassword(Integer uid, String username, String oldPassword, String newPassword)
			throws UserNotFoundException, PasswordNotMatchException, UpdateException {
		System.err.println("changePassword() ---> BEGIN:");
		System.err.println("changePassword() 原密码=" + oldPassword);
		System.err.println("changePassword() 新密码=" + newPassword);
		
		// 根据参数uid查询用户数据
		User result = userMapper.findByUid(uid);
		// 判断查询结果是否为null
		if (result == null) {
			// 抛出:UserNotFoundException
			throw new UserNotFoundException(
				"修改密码失败!用户名不存在!");
		}

		// 判断查询结果中的isDelete为1
		if (result.getIsDelete() == 1) {
			// 抛出:UserNotFoundException
			throw new UserNotFoundException(
				"修改密码失败!用户名不存在!");
		}

		// 从查询结果中获取盐值
		String salt = result.getSalt();
		// 根据参数oldPassword和盐值一起进行加密,得到加密后的密码
		String oldMd5Password = getMd5Password(oldPassword, salt);
		System.err.println("changePassword() 盐值=" + salt);
		System.err.println("changePassword() 原密码加密=" + oldMd5Password);
		System.err.println("changePassword() 正确密码=" + result.getPassword());
		// 判断查询结果中的password和以上加密后的密码是否不一致
		if (!result.getPassword().equals(oldMd5Password)) {
			// 抛出:PasswordNotMatchException
			throw new PasswordNotMatchException(
				"修改密码失败!原密码错误!");
		}

		// 根据参数newPassword和盐值一起进行加密,得到加密后的密码
		String newMd5Password = getMd5Password(newPassword, salt);
		System.err.println("changePassword() 新密码加密=" + newMd5Password);
		// 创建当前时间对象
		Date now = new Date();
		// 执行更新密码,并获取返回的受影响的行数
		Integer rows = userMapper.updatePassword(uid, newMd5Password, username, now);
		// 判断受影响的行数是否不为1
		if (rows != 1) {
			// 抛出:UpdateException
			throw new UpdateException(
				"修改密码失败!更新密码时出现未知错误!");
		}
		
		System.err.println("changePassword() ---> END.");

2、文件路径错误导致注解及依赖划红线
下图中的类
UserServiceTests
应该放在
\store\src\test\java\cn\tedu\store\service\UserServiceTests.java
现放在错误的位置
\store\src\main\java\cn\tedu\store\service\UserServiceTests.java
导致注解及依赖划红线
JAVA学子商城项目问题集锦(springboot)_第1张图片未完待续……

你可能感兴趣的:(springboot)