您的位置:首页 > 编程语言 > Java开发

SpringBoot笔记4---如何读写数据库之使用@Query注解来读写数据库

2018-01-10 14:26 656 查看
数据库配置以及相关依赖包的添加在《SpringBoot笔记3---如何读写数据库之使用CrudRepository中提供的方法来读写数据库》中已经详细说明,这里不赘述。本文在SpringBoot笔记3一文的基础上讲述如何通过@Query注解来读写数据库。

1 修改UserDao如下:

package com.gm.springboot_test.dao;

import java.util.List;

import javax.transaction.Transactional;

import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import com.gm.springboot_test.entity.User;

@Transactional
@Repository
public interface UserDao extends CrudRepository<User, Integer> {
@Query("from User where name = ?1")
public List<User> getByName(String name);

@Query("select age from User where name = ?1")
public List<Integer> getAgeByName(String name);

@Modifying
@Query("update User set age = :age where name = :name")
public void updateAge(@Param("name") String name, @Param("age") int newAge);
}


注意:当修改数据库时,需要使用@Modifying进行注解。

2 修改UserController类如下:

package com.gm.springboot_test.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.gm.springboot_test.dao.UserDao;
import com.gm.springboot_test.entity.User;

@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserDao userDao;

@RequestMapping("/getAll")
@ResponseBody
public String getAll() {
List<User> userList = (List<User>) userDao.findAll();

String result = "";

for (User user : userList) {
result += user.toString() + "<br/>";
}

return result;
}

@RequestMapping("getByName")
@ResponseBody
public String getByName(String name) {
List<User> userList = userDao.getByName(name);
String result = "";

for (User user : userList) {
result += user.toString() + "<br/>";
}

return result;
}

@RequestMapping("getAgeByName")
@ResponseBody
public String getAgeByName(String name) {
List<Integer> ageList = userDao.getAgeByName(name);
String result = "";

for (Integer age : ageList) {
result += age + "<br/>";
}

return result;
}

@RequestMapping("updateAge")
@ResponseBody
public String updateAge(String name, int age) {
userDao.updateAge(name, age);

return "更新成功";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SpringBoot 数据库
相关文章推荐