代码改变世界

java的入门-第二篇

2018-08-16 10:17  木木菇凉的House  阅读(274)  评论(0编辑  收藏  举报

java的入门第二篇

  之前的一篇,介绍了刚接触java,要如何进行开发的一个流程,今天继续来讲一个查询的接口来深入一点的学习java

  1.在controller中定义一个查询的接口,要包含跨域的设置,然后思考你要查的是什么,我要查询的结果是个列表,列表里面是对象,那么我定义这个接口的返回值类型就是list<对象>,并且,该查询接口是可以传入参数的,那么我就要在方法的参数里面加入@RequestBody User dto,dto是我ajax请求的参数的对象,具体在方法里面,我无法通过dto.name取到值,因为name的属性是private,那么我要在方法体内传的参数要怎么体现呢,就是通过get方法,比如:dto.getName()方法获取

  实例:

@RequestMapping(value = "/getAll",method = RequestMethod.POST)
@CrossOrigin(methods = {RequestMethod.GET,RequestMethod.POST},origins = "*")
public List<User> getAll(@RequestBody User dto){
return userService.getInfo(dto.getId(),dto.getName());
}
2.在controller里面调用了userService.getInfo()方法,但是这个方法,还没有啊,怎么办,那么就要在service里面的userService接口里面定义一下这个方法。定义方法是:返回的类型 名称:
  实例:
List<User> getInfo(String id, String name); List<User>是返回类型,是一个list,里面是user对象
3.service里面也定义了,那么就是serviceimpl的接口类里面去实现这个方法。首先,初始化这个list,然后在userDao是处理数据库的接口,通过userDao去请求数据库,怎没请求,方法是什么写的呢,这个方法
是按照一定的格式的,然后jpa是按照这个格式去拼成sql,不需要自己写sql了,比如:getAll()方法,就是查询全部,
  实例:
public List<User> getInfo(String id, String name) {
//List<User> list=userDao.findAll(); //查全部
List<User> list=userDao.findByNameLike("%"+name+"%");// 通过名称模糊匹配
return list;
}
然后这个findByNameLike()这个方法就会报错,说没有这个方法,那要怎么办呢?
4.在dao文件里面,增加这个方法,
  实例
public interface UserDao extends JpaRepository<User, Long> {
List<User> findByNameLike(String name);
List<User> findByIdLike(String id);
List<User> findByNameAndIdLike(String id,String name);
}
5.运行,这个接口是实现了。