崛起于Springboot2.X之集成MongoDB使用Repository增删改查(26)

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、测试成功!

8ee666633541dbda7737580e09294f7fead.jpg

285953be041b3e47e6361539a65305a2d51.jpg

转载于:https://my.oschina.net/mdxlcj/blog/1859615

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值