mongoDB的自动递增
来源:互联网 发布:java 统计访问次数 编辑:程序博客网 时间:2024/05/16 15:31
MongoDB自动递增
其实很简单,就是单独建立一张表来记录最新的id值。
1.首先建立bean
@Document(collection = "tools")
public class Tools {
@Id
private String id;// mongodb id
/**
* 计数
*/
private Long seq;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Long getSeq() {
return seq;
}
public void setSeq(Long seq) {
this.seq = seq;
}
}
2.写dao
@Repository
public class ToolsDaoImpl implements ToolsDao {
@Autowired
private MongoTemplate mongoTemplate;
@Override
public long getAutoId(String domain) {
// _id是表明
Query query = Query.query(Criteria.where("_id").is(domain));
FindAndModifyOptions options = FindAndModifyOptions.options().returnNew(true);
// 同步
Update update = new Update().inc("seq", 1);
Tools tools = mongoTemplate.findAndModify(query, update, options, Tools.class);
if (tools == null) {
return 0;
}
return tools.getSeq();
}
@Override
public void save(Tools tools) {
mongoTemplate.save(tools);
}
}
3.建立枚举
public enum AutoSeq {
USER(10000, "sys_user"),
APPOINT(100000, "appointment_info");
private final int value;
private final String name;
AutoSeq(int value, String name) {
this.value = value;
this.name = name;
}
public int value() {
return value;
}
public static AutoSeq valueOf(int value) {
for (AutoSeq e : AutoSeq.values()) {
if (e.value() == value) {
return e;
}
}
return null;
}
public String labelOf(int val) {
if (valueOf(val) != null) {
return valueOf(val).name;
}
return null;
}
@Override
public String toString() {
return this.name;
}
}
4.逻辑使用
@Override
public void insert(SysUser user) {
long seq = toolsDao.getAutoId(AutoSeq.USER.name());
if (seq > 0) {//查询自增最大的编号
user.setSeq(seq);
} else {//没有添加
Tools tools = new Tools();
tools.setId(AutoSeq.USER.name());
tools.setSeq( (long) AutoSeq.USER.value());
toolsDao.save(tools);
user.setSeq((long) AutoSeq.USER.value());
}
sysuserdao.insert(user);
}
就可以了!
- mongoDB的自动递增
- 自动递减或递增的JS变化
- Oracle实现自动递增的方式
- Oracle的ID如何自动递增?
- mongodb 自定义递增主键
- oracle 怎样设置自动递增的的字段,也就是设置自动递增的ID 主键
- 自动递增序号
- oracle sql自动递增
- mysql 自动递增
- Android 自动递增版本号
- 关于MySQL的AUTO_INCREMENT(自动递增)的设置
- 关于MySQL的AUTO_INCREMENT(自动递增)的设置
- select @@Identity 返回自动递增字段的值。
- 在oracle中建立自动递增的主键列
- mysql获取表中的自动递增字段的值
- Oracle数据库创建表ID字段的自动递增
- 在oracle中建立自动递增的主键列
- Infopath重复表添加自动递增的序号
- netmap及相关项目
- 【android】自定义dialog对话框
- Android中根据联系人的Recipient ID获取电话号码
- app插件化-绑定生命周期版本
- 二进制流和文本流区别(C语音)
- mongoDB的自动递增
- C++模板编程实现二维数组
- zoj3822||牡丹江现场赛D题 概率dp
- mysql基本操作
- intent传递
- vdsm的SSL证书验证过程
- iOS修改相机cancel键为中文方法,系统相机,系统相册
- android控件总结
- POJ 3071 Football 概率DP