1、pom依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.7</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
</dependency>
2、配置
spring.data.mongodb.uri=mongodb://localhost:27017/xbl
3、Repository
@Repository
public interface AdminRepository extends MongoRepository<AdminEntity,String> {
Page<AdminEntity> findByAccount(String account,Pageable pageable);//字段account,分页条件
Page<AdminEntity> findByAccountAndCreateAtBetween(String account,String startTime,String endTime,Pageable pageable);
Page<AdminEntity> findByAccountAndNickNameLike(String account,String nickName,Pageable pageable);
}
@Component
public interface CustomerRepository extends MongoRepository<CustomerEntity,String>{
CustomerEntity findByLastName(String lastName);
List<CustomerEntity> findAllByFirstName(String firstName);
}
4、Entity
@Data
@EqualsAndHashCode(callSuper = false)
@Document(collection = "adminEntity")
public class AdminEntity {
@Id
private String id;
private String remark;
private String email;
private String nickName;
private String account;
private String password;
private String roleId;
private String mobile;
private String objectId;
private String createAt;
private String updateAt;
private int status;
}
@Data
@NoArgsConstructor
@ToString
public class CustomerEntity {
@Id
public String id;
public String firstName;
public String lastName;
public CustomerEntity(String firstName,String lastName){
this.firstName =firstName;
this.lastName =lastName;
}
}
5、service
public interface CustomerService {
CustomerEntity findByTwo(String lastName);
public List<CustomerEntity> findAllByFirstName(String first);
}
@Service
public class CustomerServiceImpl implements CustomerService {
@Autowired
CustomerRepository customerRepository;
@Override
public CustomerEntity findByTwo(String lastName) {
return customerRepository.findByLastName(lastName);
}
@Override
public List<CustomerEntity> findAllByFirstName(String first) {
return customerRepository.findAllByFirstName(first);
}
}
6、Util
public class PageUtil implements Serializable,Pageable {
private static final long seriaVersionUID =1L;
//当前页
private Integer pageNum =1;
//当前页面数
private Integer pagesize =2;
//排序条件
private Sort sort;
@Override
public int getPageNumber() {
return pageNum;
}
@Override
public int getPageSize() {
return pagesize;
}
//第二页所需增加的数量
@Override
public int getOffset() {
return (getPageNumber()-1)*pagesize;
}
@Override
public Sort getSort() {
return sort;
}
public void setSort(Sort sort){
this.sort =sort;
}
@Override
public Pageable next() {
return null;
}
@Override
public Pageable previousOrFirst() {
return null;
}
@Override
public Pageable first() {
return null;
}
@Override
public boolean hasPrevious() {
return false;
}
public int getPageNum(){
return pageNum;
}
public void setPageNum(int pageNum){
this.pageNum =pageNum;
}
public int getPagesize(){
return pagesize;
}
public void setPagesize(int pagesize){
this.pagesize =pagesize;
}
}
7、controller
@Controller
@RequestMapping(value = "/second")
public class SeondController {
@Autowired
CustomerRepository customerRepository;
@Autowired
AdminRepository adminRepository;
@Autowired
CustomerService customerService;
@RequestMapping(value = "/insert",method = RequestMethod.POST)
@ResponseBody
public String insert(){
CustomerEntity customerEntity =new CustomerEntity("CHENGJIAN","11");
CustomerEntity customerEntity1 =new CustomerEntity("LALALA","11");
customerRepository.save(customerEntity);
customerRepository.save(customerEntity1);
return "success";
}
@RequestMapping(value = "/add",method = RequestMethod.GET)
@ResponseBody
public String add(){
//目前通过repository生成的数据库集合并不是
AdminEntity t_admin = new AdminEntity();
String id = String.valueOf(UUID.randomUUID());
t_admin.setId(id);
t_admin.setAccount("are you ok");
t_admin.setNickName("yes my id");
t_admin.setStatus(2);
t_admin.setMobile("76521");
AdminEntity a =adminRepository.save(t_admin);
return a.toString();
}
@RequestMapping(value = "/get",method = RequestMethod.GET)
@ResponseBody
public String get(){
//Sort sort =new Sort(Sort.Direction.ASC,"name");
AdminEntity adminEntity =adminRepository.findOne("31b8b9ee-5d89-44d0-af66-65b0b671f03b");
return adminEntity.toString();
}
@RequestMapping(value = "/update",method = RequestMethod.POST)
@ResponseBody
public String update(){
//save 其实也有更新的功能
String id ="";
AdminEntity adminEntity =new AdminEntity();
adminEntity.setId(id);
//下面是关于集合的一个document的更新
// adminEntity.set**()
AdminEntity adminEntity1 =adminRepository.save(adminEntity);
return adminEntity.toString();
}
@RequestMapping(value = "/delete",method = RequestMethod.DELETE)
public void delete(){
String id ="";
AdminEntity adminEntity =null;
adminRepository.delete(id);
}
//排序和分页
@RequestMapping(value = "/sortAndPage",method = RequestMethod.GET)
@ResponseBody
public String sort(){
PageUtil pageable = new PageUtil();
List<Order> orders = new ArrayList<Order>();
orders.add(new Order(Sort.Direction.DESC,"createTime"));
pageable.setSort(new Sort(orders));
//每页显示条数
pageable.setPagesize(2);
//当前页
pageable.setPageNum(0);
Page<AdminEntity> page = adminRepository.findByAccount("cj",pageable);
Iterator<AdminEntity> list =page.iterator();
List<AdminEntity> list1 =new ArrayList<>();
while (list.hasNext()){
list1.add(list.next());
}
return list1.toString();
}
}
8、测试成功!