CRUDRepository 的使用很简单,原来我们继承 Repository ,现在我们继承 CRUDRepository ,就可以使用 CRUDRepository 固定的一些方法,我们不用写 SQL 语句。
public interface BookRepository extends CrudRepository<Book, Integer> {
}
说明:里面可以不用写任何方法,因为 CrudRepository 接口,自己就有很多方法。
CrudRepository 接口提供了最基本的对实体类的添删改查操作
T save(T entity);//保存单个实体
Iterable<T> save(Iterable<? extends T> entities);//保存集合
T findOne(ID id);//根据id查找实体
boolean exists(ID id);//根据id判断实体是否存在
Iterable<T> findAll();//查询所有实体,不用或慎用!
long count();//查询实体数量
void delete(ID id);//根据Id删除实体
void delete(T entity);//删除一个实体
void delete(Iterable<? extends T> entities);//删除一个实体的集合
void deleteAll();//删除所有实体,不用或慎用!
我们测试的方法是添加集合,因为是添加操作,所以还是要放在 Service 层,启用事务注解。
@Service
public class BookService {
@Autowired
private BookRepository bookRepository;
@Transactional
public void saveBookList(List<Book> books){
bookRepository.save(books);
}
}
测试方法:
// 以下测试 CrudRepository 接口的使用
@Test
public void testCrudRepository(){
List<Book> books = new ArrayList<>();
for(int i='a';i<='z';i++){
Book book = new Book();
book.setName((char)i+""+(char)i+"@sina.com");
book.setAuthor((char)i+""+(char)i);
books.add(book);
}
bookService.saveBookList(books);
}