介绍
- 在注解里写sql , 懒得在手动的去引入jdbctemplate后写一大堆东西
- 还未完成的功能
- @delete 删除注解
- @Update 更新注解
- @Insert 注解
- 已完成的功能
- @Query 查询注解
引入依赖
<dependency>
<groupId>cn.jdevelops</groupId>
<artifactId>caches-jdbctemplate</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 可选依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
使用参考
@Query
数据库别忘了连接
- 新增接口类 ```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 {
List<User> findAll();
User findById();
User findById(Integer id);
User findByBean(UserBO user);
List<User> findByBean2(UserBO user);
String findNameById(Integer id);
List<String> findName();
Integer findIdByName(String name);
List<Integer> findId();
}
2. 新增接口实现类(暂未解决不实现就能处理的功能
> 1. 在方法构建查询注解
```java
package cn.tannn.cachesjdbctemplate.service;
import cn.jdevelops.jdbctemplate.annotation.Query;
import cn.tannn.cachesjdbctemplate.UserBO;
import cn.tannn.cachesjdbctemplate.entity.User;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @author tnnn
* @version V1.0
* @date 2022-08-01 13:41
*/
@Service
public class QueryUserServiceImpl implements QueryUserService {
@Override
@Query(value = "select * from sys_user",clazz = User.class)
public List<User> findAll() {
return new ArrayList<>();
}
@Override
@Query(value = "select * from sys_user where id = 1 ",clazz = User.class)
public User findById() {
return new User();
}
@Override
@Query(value = "select * from sys_user where id = #{id} ",clazz = User.class)
public User findById(Integer id) {
return new User();
}
@Override
@Query(value = "select * from sys_user where name = '#{user.name}' or login_name = '#{user.loginName}' ",clazz = User.class)
public User findByBean(UserBO user) {
return new User();
}
@Override
@Query(value = "select * from sys_user where name = '#{user.name}' or login_name = '#{user.loginName}' ",clazz = User.class)
public List<User> findByBean2(UserBO user) {
return new ArrayList<>();
}
@Override
@Query(value = "select name from sys_user where id = #{id} ",clazz = String.class)
public String findNameById(Integer id) {
return "";
}
@Override
@Query(value = "select name from sys_user",clazz = String.class)
public List<String> findName() {
return new ArrayList<>();
}
@Override
@Query(value = "select id from sys_user where name = '#{name}' ",clazz = Integer.class)
public Integer findIdByName(String name) {
return null;
}
@Override
@Query(value = "select id from sys_user",clazz = Integer.class)
public List<Integer> findId() {
return new ArrayList<>();
}
}
- 测试 ```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 {
@Autowired
private QueryUserService userService;
@Test
void findAll() {
userService.findAll().forEach(it -> System.out.printf(it.toString()));
}
@Test
void findById() {
System.out.println(userService.findById());
}
@Test
void findById2() {
System.out.println(userService.findById(2));
}
@Test
void findById3() {
Assert.assertThrows(EmptyResultDataAccessException.class, () ->{
userService.findById(3);
});
}
@Test
void findByBean() {
UserBO userBO = new UserBO();
userBO.setName("根据指定key更新1");
userBO.setLoginName("user7");
System.out.println(userService.findByBean(userBO));
}
@Test
void findByBean2() {
UserBO userBO = new UserBO();
userBO.setName("根据指定key更新");
userBO.setLoginName("user7");
userService.findByBean2(userBO).forEach(it -> System.out.println(it.toString()));
}
@Test
void findName() {
userService.findName().forEach(System.out::println);
}
@Test
void findId() {
System.out.println(userService.findId());
}
@Test
void findIdByName() {
System.out.println(userService.findIdByName("根据指定key更新1"));
}
}
```