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 "更新成功";
}
}
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笔记3---如何读写数据库之使用CrudRepository中提供的方法来读写数据库
- SpringBoot笔记5---如何读写数据库之通过Query对象读写数据库
- Spring Boot快速入门(五):使用MyBatis(注解形式)进行数据库操作
- springboot学习笔记--Spring Boot使用数据库(MySQL)
- SPRING IN ACTION 第4版笔记-第九章Securing web applications-008-使用非关系型数据库时如何验证用户(自定义UserService)
- Redis系列三 - Spring boot如何使用redis做缓存及缓存注解的用法总结
- Redis系列三 - Spring boot如何使用redis做缓存及缓存注解的用法总结
- Redis系列三 - Spring boot如何使用redis做缓存及缓存注解的用法总结
- SpringBoot笔记6---如何读写数据库之使用JpaSpecificationExecutor读写数据库
- springboot+springmvc+mybatis 使用注解对数据库的增、改和查操作
- 如何在网店数据库中使用视图 【数据库高效编程 - 学习笔记 第八章】
- 没有spring如何使用注解下篇
- 如何使用Hadoop读写数据库
- 学习笔记-----Spring_MVC注解的使用
- 【Spring学习笔记】五、使用JDBCTemplate以对象方式操作数据库
- spring学习笔记(12)——使用注解方式配置bean
- 如何在数据库中使用索引 【数据库高效编程 - 学习笔记 第七章】
- Spring如何使用aop切入controller层---问题笔记
- spring学习笔记7--使用spring进行面向切面的(AOP)编程(1)注解方式实现
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(六): 一些常用的数据库 注解