标签:自增 Redis tableName jedis primaryKeyMap import id
记录一份代码
import java.util.HashMap;
import java.util.Map;
import com.jfinal.plugin.activerecord.ActiveRecordException;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.redis.Redis;
import huazhan.user.vo.User;
import redis.clients.jedis.Jedis;
public class PrimaryKeyGeneratorKit {
/**
* 需要自增的主键Map
* key: 表名
* value: 主键字段名
*/
private static Map<String, String> primaryKeyMap = new HashMap<>();
static {
primaryKeyMap.put(User.TABLE_NAME, User.PRIMARY_KEY);
}
private PrimaryKeyGeneratorKit() {
throw new IllegalStateException("Utility class");
}
/**
* @Title getIncr
* @Description 获取自增id
* @param tableName 自增id所属的表名
* @return Long
* @version V1.0
* @date 2021年6月9日 下午5:38:47
* @author zlj
*/
public static synchronized Long getIncr(String tableName){
Jedis jedis = Redis.use().getJedis();
try {
if(!primaryKeyMap.containsKey(tableName)) {
throw new ActiveRecordException("idFieldMap中不存在【" + tableName + "】,如需要使用自增id,请先将需要获取自动id的表名添加到 idFieldMap中");
}
if(!jedis.exists(tableName)) {
Number id = Db.queryNumber("SELECT "+ primaryKeyMap.get(tableName) +" FROM "+ tableName +" ORDER BY "+ primaryKeyMap.get(tableName) +" DESC LIMIT 1 ");
jedis.set(tableName, id == null ? "0" : id.toString());
}
return jedis.incr(tableName);
} finally {
jedis.close();
}
}
}
标签:自增,Redis,tableName,jedis,primaryKeyMap,import,id 来源: https://blog.csdn.net/qq_33257711/article/details/117922121
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。