介绍

  1. 在注解里写sql , 懒得在手动的去引入jdbctemplate后写一大堆东西
  1. 还未完成的功能
    1. @delete 删除注解
    2. @Update 更新注解
    3. @Insert 注解
  2. 已完成的功能
    1. @Query 查询注解

引入依赖

  1. <dependency>
  2. <groupId>cn.jdevelops</groupId>
  3. <artifactId>caches-jdbctemplate</artifactId>
  4. <version>2.0.6</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>mysql</groupId>
  8. <artifactId>mysql-connector-java</artifactId>
  9. <scope>runtime</scope>
  10. </dependency>
  11. <!-- 可选依赖-->
  12. <dependency>
  13. <groupId>org.springframework.boot</groupId>
  14. <artifactId>spring-boot-starter-web</artifactId>
  15. </dependency>

使用参考

@Query

数据库别忘了连接

  1. 新增接口类 ```java package cn.tannn.cachesjdbctemplate.service;

import cn.tannn.cachesjdbctemplate.UserBO; import cn.tannn.cachesjdbctemplate.entity.User;

import java.util.List;

/**

  • @author tnnn
  • @version V1.0
  • @date 2022-08-01 13:41 */ public interface QueryUserService {
  1. List<User> findAll();
  2. User findById();
  3. User findById(Integer id);
  4. User findByBean(UserBO user);
  5. List<User> findByBean2(UserBO user);
  6. String findNameById(Integer id);
  7. List<String> findName();
  8. Integer findIdByName(String name);
  9. List<Integer> findId();

}

  1. 2. 新增接口实现类(暂未解决不实现就能处理的功能
  2. > 1. 在方法构建查询注解
  3. ```java
  4. package cn.tannn.cachesjdbctemplate.service;
  5. import cn.jdevelops.jdbctemplate.annotation.Query;
  6. import cn.tannn.cachesjdbctemplate.UserBO;
  7. import cn.tannn.cachesjdbctemplate.entity.User;
  8. import org.springframework.stereotype.Service;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. /**
  12. * @author tnnn
  13. * @version V1.0
  14. * @date 2022-08-01 13:41
  15. */
  16. @Service
  17. public class QueryUserServiceImpl implements QueryUserService {
  18. @Override
  19. @Query(value = "select * from sys_user",clazz = User.class)
  20. public List<User> findAll() {
  21. return new ArrayList<>();
  22. }
  23. @Override
  24. @Query(value = "select * from sys_user where id = 1 ",clazz = User.class)
  25. public User findById() {
  26. return new User();
  27. }
  28. @Override
  29. @Query(value = "select * from sys_user where id = #{id} ",clazz = User.class)
  30. public User findById(Integer id) {
  31. return new User();
  32. }
  33. @Override
  34. @Query(value = "select * from sys_user where name = '#{user.name}' or login_name = '#{user.loginName}' ",clazz = User.class)
  35. public User findByBean(UserBO user) {
  36. return new User();
  37. }
  38. @Override
  39. @Query(value = "select * from sys_user where name = '#{user.name}' or login_name = '#{user.loginName}' ",clazz = User.class)
  40. public List<User> findByBean2(UserBO user) {
  41. return new ArrayList<>();
  42. }
  43. @Override
  44. @Query(value = "select name from sys_user where id = #{id} ",clazz = String.class)
  45. public String findNameById(Integer id) {
  46. return "";
  47. }
  48. @Override
  49. @Query(value = "select name from sys_user",clazz = String.class)
  50. public List<String> findName() {
  51. return new ArrayList<>();
  52. }
  53. @Override
  54. @Query(value = "select id from sys_user where name = '#{name}' ",clazz = Integer.class)
  55. public Integer findIdByName(String name) {
  56. return null;
  57. }
  58. @Override
  59. @Query(value = "select id from sys_user",clazz = Integer.class)
  60. public List<Integer> findId() {
  61. return new ArrayList<>();
  62. }
  63. }
  1. 测试 ```java package cn.tannn.cachesjdbctemplate;

import cn.tannn.cachesjdbctemplate.service.QueryUserService; import org.junit.Assert; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.dao.EmptyResultDataAccessException;

@SpringBootTest class QueryTest {

  1. @Autowired
  2. private QueryUserService userService;
  3. @Test
  4. void findAll() {
  5. userService.findAll().forEach(it -> System.out.printf(it.toString()));
  6. }
  7. @Test
  8. void findById() {
  9. System.out.println(userService.findById());
  10. }
  11. @Test
  12. void findById2() {
  13. System.out.println(userService.findById(2));
  14. }
  15. @Test
  16. void findById3() {
  17. Assert.assertThrows(EmptyResultDataAccessException.class, () ->{
  18. userService.findById(3);
  19. });
  20. }
  21. @Test
  22. void findByBean() {
  23. UserBO userBO = new UserBO();
  24. userBO.setName("根据指定key更新1");
  25. userBO.setLoginName("user7");
  26. System.out.println(userService.findByBean(userBO));
  27. }
  28. @Test
  29. void findByBean2() {
  30. UserBO userBO = new UserBO();
  31. userBO.setName("根据指定key更新");
  32. userBO.setLoginName("user7");
  33. userService.findByBean2(userBO).forEach(it -> System.out.println(it.toString()));
  34. }
  35. @Test
  36. void findName() {
  37. userService.findName().forEach(System.out::println);
  38. }
  39. @Test
  40. void findId() {
  41. System.out.println(userService.findId());
  42. }
  43. @Test
  44. void findIdByName() {
  45. System.out.println(userService.findIdByName("根据指定key更新1"));
  46. }

}

```

示例代码

https://github.com/en-o/Jdevelops-Example/tree/main/caches-jdbctemplate/src/test/java/cn/tannn/cachesjdbctemplate