最近学习了一些Javascript DOM的知识,想要在springboot环境下实现ajax访问数据库并实时返回查询结果。将成果放在这里加深一下记忆。
配置环境
springboot环境下引入阿里系的fastjson组件依赖,用于解析前端传来的json元素
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
前端需要引入jquery的依赖,使用jquery提供的ajax方法进行操作
<script src="../../plugins/jquery/jquery.min.js"></script>
实现
DAO层
@Repository
public interface UserRepository {
Optional<LoginServiceModel> FindUserByusername(String username);
Optional<LoginServiceModel> FindUserByemail(String email);
Optional<LoginServiceModel> FindUserByusernameAndpassword(String username,String password);
ArrayList<UserMessageModel> GetUserByusername(String username);
int RegisterUser(User user);
}
Service层
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserRepository userRepository;
@Override
public boolean FindUserByusername(String username) {
return userRepository.FindUserByusername(username).isPresent();
}
Controller层
//接收json数据串需要在controller方法处加@ResponseBody注解
@ResponseBody
@PostMapping("/test")
public String test(@RequestBody JSONObject message){
/* 1.get方法返回值为Object类型,需要进行强制转换
* 2.get方法内的参数必须与Js脚本内json串的key值对应*/
boolean ss=userService.FindUserByusername((String)message.get("message"));
if(ss)return "true";
else return "false";
}
ajax代码
function isexist(i){
var message =$("#uname").val();
var tele = {"message":message};//json串的标准形式,新版本json严格要求格式正确
var option ={
url:"/user/test",//ajax访问Controller位置
contentType:"application/json;charset=UTF-8",
type:"POST",//GET请求无法接收json串
async:false,
datatype: "json",
data: JSON.stringify(tele),//将json串转换为字符串形式
success:function (msg){
message=msg;
if(msg==="true")$("#acc").html("用户已存在!");
else $("#acc").html("");
}
};
$.ajax(option);//jquery的ajax方法
}
通过上述操作实现了登录界面用户名自动查询是否重名的功能
Java后端的学习是学无止境的,共勉~~