前提
今天准备自己前端测试一个小功能,但是得自己造一些数据,所以用Java写了几个接口,但是在项目搭建的过程中遇到如下几个问题。一.# Failed to bind properties under 'mapper.mappers',顾名思义就是绑定属性到mappers上面失败了,二. Table 'hh_my_test.user' doesn't exist,意思就是数据库中某张表不存在
产生问题的原因
问题一的原因就是自己在配置application.xml的时候忘记补全类名,只写到包名为止,一开始我是没有写这个.MyMapper。
但是也要注意一点,就是设置扫包的时候,不能把这个通用mapper的包也扫描到,所以设置
@MapperScan(basePackages = {"com.hhzj.mapper"}),所有的mapper都放在com.hhzj.mapper这个包里面,把通用mapper单独命名包空间
注意看mapper和myMapper的包是同级的,所以通用mapper没有被spring扫描到,如果被扫描到了,也会出现问题一
问题二的原因就是我的pojo中的类名和数据库中表的名字是不一样的,我pojo中的类名叫User,但是数据库的表名是user_login,这样在mapper中做映射的时候就会出问题,解决办法就是加上@Table(name = "user_login")
前端部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="user/login">
<input type="text" name="userEmail" placeholder="请输入用户邮箱">
<input type="text" name="username" placeholder="请输入用户名">
<input type="password" name="password" placeholder="请输入用户密码">
<input class="sumbit" type="submit" value="提交">
</form>
<script>
const submit = document.querySelector(".sumbit")
const userEmail = document.querySelector("input[name='userEmail']")
userEmail.setAttribute("value", "root@qq.com") // 一开始进入页面就设置默认值
const username = document.querySelector("input[name='username']")
username.setAttribute("value", "root")
const password = document.querySelector("input[name='password']")
// username.setAttribute("value", "root123") 用户密码不能设置默认值
let userEmailValue = userEmail.value
let usernameValue = username.value
let passwordValue = password.value
userEmail.addEventListener("input", function () {
userEmailValue = this.value
})
username.addEventListener("input", function () {
usernameValue = this.value
})
password.addEventListener("input", function () {
passwordValue = this.value
})
submit.addEventListener("click", function (e) {
const data = {
userEmail: userEmailValue,
username: usernameValue,
password: passwordValue
}
let xhr = new XMLHttpRequest()
xhr.open("post", `user/login`)
xhr.setRequestHeader("Content-Type", "application/json")
xhr.addEventListener("load", function (data) {
console.log(data)
})
xhr.send(JSON.stringify(data))
# form表单中写了metho和action,这个e.preventDefault()就是测试一下阻止表单默认的提交事件
e.preventDefault()
})
</script>
</body>
</html>