一:查询所有
我们先在数据库test表中添加2条数据
我们建立两个java类,一个是controller,一个是respository
@RestController
public class TestController {
@Autowired
private TestRepository testRepository;
@GetMapping(value="/tests")
public List<Test> testList(){
return testRepository.findAll();
}
public interface TestRepository extends JpaRepository<Test,Integer> {
}
启动程序,浏览器输入http://localhost:5678/tests
我们看到了结果,把数据库中的数据查出来了
二:增加
此处我们是post请求,代码如下
@PostMapping(value="/tests")
public Test testAdd(@RequestParam("age")Integer age,@RequestParam("name")String name){
Test test = new Test();
test.setAge(age);
test.setName(name);
return testRepository.save(test);
}
启动程序,用curl访问(curl安装详见:https://blog.csdn.net/stronglyh/article/details/80395403)
我们再去数据库看一下:
ok,数据入库了
我们使用的是win系统下的curl,所以乱码了,如果不乱码可以用postman工具
三:根据id查询出一条数据
@GetMapping(value="/tests/{id}")
public Test testFindOne(@PathVariable("id") Integer id){
return testRepository.findById(id).get();
}
注意啦,我们用的是spring-boot-starter-parent的版本是2.0,所以写法是findById(id).get(),如果是1.5的版本,则写法就变成了return testTepository.findOne(id)
浏览器输入http://localhost:5678/tests/6
如果没有,则会报异常:
Whitelabel Error Page
四:修改
@PutMapping(value="/tests/{id}")
public Test testUpdate(@PathVariable("id") Integer id,@RequestParam("age") Integer age,@RequestParam("name")String name){
Test test = new Test();
test.setId(id);
test.setAge(age);
test.setName(name);
return testRepository.save(test);
}
我们用postman进行put操作(注意,body选项要是x-www-form-urlencoded)
执行完之后我们再来看一下数据库数据情况
ok,我们发现id为6的这条数据进行了变化
五:删除
@DeleteMapping(value="/tests/{id}")
public void testDelete(@PathVariable("id") Integer id){
Test test = testRepository.findById(id).get();
testRepository.delete(test);
}
注意,如果spring-boot-starter-parent版本是1.5,则可以直接用testRepository.delete(id)
此处我要删除id为7的数据
因为是删除,不返回任何数据,所以postman也看不到数据,我们再来看下数据库
如果再次执行删除则会报错
其实spring boot2在这块处理的还是比较到位的,先用findbyid方法确认是否存在,存在再执行删除即可,代码这个地方是需要加上这个判断的
六:通过其他字段进行查询
比如我们通过age字段进行查询
先在TestRepository编写数据库方法方法,注意因为一个年龄可能存在多个用户,所以此处用list
public List<Test> findByAge(Integer age);
然后再TestController中编写方法方法
@GetMapping(value="/tests/age/{age}")
public List<Test>testListByAge(@PathVariable("age") Integer age){
return testRepository.findByAge(age);
}
接下来我们用浏览器进行访问