mongodb java 学习_MongoDB学习记录

MongoRepository使用

@Repository

public interface SysMenuRepository extends MongoRepository {

/**

* 模糊查询

* StartsWith 起始位置开始匹配

* EndsWith 结束位置

* @param code 匹配内容

* @return

*/

List findByCodeStartsWith(String code);

}

示例

@Service

public class SysMenuService {

@Autowired

private SysMenuRepository sysMenuRepository;

@Autowired

private MgRepository mgRepository;

/**

* 新增

* @param sysMenu

* @return

*/

public SysMenu save(SysMenu sysMenu){

return sysMenuRepository.save(sysMenu);

}

/**

* 查询所有并分页

* @return

*/

public Page findAll(Pageable pageable) {

return sysMenuRepository.findAll(pageable);

}

/**

* 模糊查询所有 分页

* @param pageable

* @return

*/

public Page findPag(Pageable pageable) {

SysMenu sysMenu = new SysMenu();

sysMenu.setCode("e");

sysMenu.setId("e");

sysMenu.setPcode("qqqqq");

Example example = Example.of(sysMenu,generater());

return sysMenuRepository.findAll(example,pageable);

}

/**

* 删除

* @param id

* @return

*/

public String delete(String id){

sysMenuRepository.deleteById(id);

boolean exists = sysMenuRepository.existsById(id);

return exists == false ? "1":"0";

}

/**

* StartsWith 起始位置开始匹配

* EndsWith 结束位置

* @param code

* @return

*/

public List findByCodeStartsWith(String code){

return sysMenuRepository.findByCodeStartsWith(code);

}

private ExampleMatcher generater() {

return ExampleMatcher.matching() //构建对象

.withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING) //改变默认字符串匹配方式:模糊查询

.withIgnoreCase(true) //改变默认大小写忽略方式:忽略大小写

.withMatcher("pcode", match->match.exact()) // 精确查询pcode,模糊查询其他

// .withMatcher("code", ExampleMatcher.GenericPropertyMatchers.regex()) // 查询

// .withMatcher("id", ExampleMatcher.GenericPropertyMatchers.regex()) // 查询

// .withMatcher("pcode", ExampleMatcher.GenericPropertyMatchers.regex()) // 查询

.withIgnoreNullValues();//hu忽略null

}

MongoTemplate 使用

public abstract class MongodbBaseDao{

/**

* spring mongodb 集成操作类

*/

@Autowired

private MongoTemplate mongoTemplate;

/**

* 通过条件查询实体(集合)

*

* @param query

*/

public List find(Query query) {

return mongoTemplate.find(query,this.getEntityClass());

}

/**

* 通过一定的条件查询一个实体

*

* @param query

* @return

*/

public T findOne(Query query) {

return mongoTemplate.findOne(query, this.getEntityClass());

}

/**

* 通过条件查询更新数据

*

* @param query

* @param update

* @return

*/

public void update(Query query, Update update) {

mongoTemplate.upsert(query, update, this.getEntityClass());

}

/**

* 保存一个对象到mongodb

*

* @param bean

* @return

*/

public T save(T bean) {

mongoTemplate.save(bean);

return bean;

}

/**

* 通过ID获取记录

*

* @param id

* @return

*/

public T get(String id) {

return mongoTemplate.findById(id, this.getEntityClass());

}

/**

* 通过ID获取记录,并且指定了集合名(表的意思)

*

* @param id

* @param collectionName

* 集合名

* @return

*/

public T get(String id, String collectionName) {

return mongoTemplate.findById(id, this.getEntityClass(), collectionName);

}

/**

* 获取需要操作的实体类class

*

* @return

*/

protected abstract Class getEntityClass();

}

Criteria 说明

68bfdf3476ef0c6acd06a67b23f67ce1.gif

示例:

/**

* 使用 Criteria 示例

* @param id

* @return

*/

public SysMenu find(String id){

Criteria criteria = new Criteria();

criteria.where("id").is(id);

Query query = Query.query(criteria);

return mgRepository.findOne(query);

}

详细请看:

https://github.com/Dylan-haiji/javayh-cloud/tree/master/javayh-mongodb

希望对看到的小伙伴有所帮助

小编寄语

小编创建了一个关于Java学习讨论的微信群!想进去的可以联系小编!同时也欢迎大家点赞与转发!

小编微信:372787553

备注为进群,通过后小编会邀请您进群!

Ja

va

68bfdf3476ef0c6acd06a67b23f67ce1.gif

原文始发于微信公众号(Java有货):MongoDB学习记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值