package com.iminido.nosql; import com.sequoiadb.base.CollectionSpace; import com.sequoiadb.base.DBCollection; import com.sequoiadb.base.DBCursor; import com.sequoiadb.base.Sequoiadb; import com.sequoiadb.base.SequoiadbDatasource; import com.sequoiadb.base.SequoiadbOption; import com.sequoiadb.exception.BaseException; import com.sequoiadb.net.ConfigOptions; import ist.Const; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.Semaphore; import java.util.function.BiConsumer; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.logging.log4j.LogManager; import org.bson.BSONObject; import org.bson.BasicBSONObject; import org.bson.util.JSON; import org.json.JSONObject; /** * @author Jade */ public class Squ { private static SequoiadbDatasource sequoiadbDatasource; protected static final org.apache.logging.log4j.Logger log = LogManager.getLogger(Squ.class); private static Semaphore semaphore = new Semaphore(1); private static Map<String, Sequoiadb> dbs = new HashMap<String, Sequoiadb>(); public static void main(String[] args) { // String connString = Const.SEQUOIADB_HOST + ":" + Const.SEQUOIADB_PORT; try { // 建立 SequoiaDB 数据库连接 Sequoiadb sdb = new Sequoiadb(connString, "", ""); // 获取所有 Collection 信息,并打印出来 DBCursor cursor = sdb.listCollectionSpaces(); while (cursor.hasNext()) { System.out.println(cursor.getCurrent()); } } catch (BaseException e) { System.out.println("Sequoiadb driver error, error description:" + e.getErrorType()); } // initSequoiadbDatasource(); // getSequoiadb(); // BSONObject dbo = new BasicBSONObject(); //添加异常处理 // dbo.put("key_a", "value_a"); // dbo.put("key_b", "value_b"); // // DBCollection dBCollection = initCollection("test"); // dBCollection.save(dbo); // DBCursor dbc = dBCollection.query(); // while (dbc.hasNext()) { // System.out.println("" + dbc.getNext().toString()); // } // sequoiadbDatasource.close(dBCollection.getSequoiadb()); } static { } private static void initSequoiadbDatasource() { ArrayList<String> urls = new ArrayList<>(); ConfigOptions nwOpt = new ConfigOptions(); // 定义连接选项 SequoiadbOption dsOpt = new SequoiadbOption(); // 定义连接池选项 urls.add(Const.SEQUOIADB_HOST + ":" + Const.SEQUOIADB_PORT);// // urls.add("ubuntu-dev2:11810"); // urls.add("ubuntu-dev3:11810"); nwOpt.setConnectTimeout(500); // 设置若连接失败,超时时间(ms) nwOpt.setMaxAutoConnectRetryTime(0); // 设置若连接失败,重试次数 // 以下设置的都是 SequoiadbOption 的默认值 dsOpt.setMaxConnectionNum(500); // 设置连接池最大连接数 dsOpt.setInitConnectionNum(10); // 初始化连接池时,创建连接的数量 dsOpt.setDeltaIncCount(10); // 当池中没有可用连接时,增加连接的数量 dsOpt.setMaxIdeNum(10); // 周期清理多余的空闲连接时,应保留连接的数量 dsOpt.setTimeout(5 * 1000); // 当已使用的连接数到达设置的最大连接数时(500),请求连接的等待时间。 dsOpt.setAbandonTime(10 * 60 * 1000); // 连接存活时间,当连接空闲时间超过连接存活时间,将被连接池丢弃 dsOpt.setRecheckCyclePeriod(1 * 60 * 1000); // 清除多余空闲连接的周期 dsOpt.setRecaptureConnPeriod(10 * 60 * 1000); // 检测并取回异常地址的周期 sequoiadbDatasource = new SequoiadbDatasource(urls, Const.SEQUOIADB_USERNAME, Const.SEQUOIADB_PASSWORD, nwOpt, dsOpt); // 创建连接池 } private static synchronized Sequoiadb getSequoiadb() { return getSequoiadb("zy"); } private static synchronized Sequoiadb getSequoiadb(String dbName) { // Sequoiadb sdb = dbs.get(dbName); Sequoiadb sdb = null; try { sdb = sequoiadbDatasource.getConnection(); } catch (BaseException | InterruptedException ex) { Logger.getLogger(Squ.class.getName()).log(Level.SEVERE, null, ex); } // while (sdb == null) { // try { // semaphore.tryAcquire(1, 2, TimeUnit.SECONDS); // } catch (InterruptedException ex) { // Logger.getLogger(Squ.class.getName()).log(Level.SEVERE, null, ex); // } // try { // sdb = sequoiadbDatasource.getConnection(); // } catch (BaseException | InterruptedException ex) { // Logger.getLogger(Squ.class.getName()).log(Level.SEVERE, null, ex); // } // } // dbs.put(dbName, sdb); semaphore.release(); return sdb; } private static CollectionSpace initCollectionSpace(String csName) { try { Sequoiadb sdb = getSequoiadb(); CollectionSpace cs; if (sdb.isCollectionSpaceExist(csName)) { cs = sdb.getCollectionSpace(csName); } else { cs = sdb.createCollectionSpace(csName); } return cs; } catch (BaseException ex) { Logger.getLogger(Squ.class.getName()).log(Level.SEVERE, null, ex); return null; } } private static DBCollection initCollection(String collectionName) { CollectionSpace cs = initCollectionSpace(Const.SEQUOIADB_DATABASE); DBCollection cl; if (cs.isCollectionExist(collectionName)) { cl = cs.getCollection(collectionName); } else { cl = cs.createCollection(collectionName); } return cl; } public static void remove(String collectionName) { DBCollection cl = initCollection(collectionName); cl.delete(new BasicBSONObject()); sequoiadbDatasource.close(cl.getSequoiadb()); } public static boolean delete(String cl, String matcher) { try { DBCollection dbc = initCollection(cl); dbc.delete(matcher); sequoiadbDatasource.close(dbc.getSequoiadb()); return true; } catch (Exception e) { log.error("delete " + cl + "matcher=>" + matcher + "失败", e); return false; } } public static void delete(String cl, String matcher, String hint) { DBCollection dbc = initCollection(cl); dbc.delete(matcher, hint); sequoiadbDatasource.close(dbc.getSequoiadb()); } public static boolean insert(String collectionName, String... key_val) { String strJson = strs2json(key_val); if (strJson != null) { BSONObject dbo; try { dbo = (BasicBSONObject) JSON.parse(strJson); //添加异常处理 } catch (Exception e) { log.error("解析json字符串异常,传入的字符串为:" + strJson, e); return false; } try { DBCollection dbc = initCollection(collectionName); dbc.insert(dbo); sequoiadbDatasource.close(dbc.getSequoiadb()); return true; } catch (Exception e) { return false; } } return false; } public static boolean insert(String collectionName, String strJson) { BSONObject dbo = null; try { dbo = (BasicBSONObject) JSON.parse(strJson); //添加异常处理 } catch (Exception e) { log.error("解析json字符串异常,传入的字符串为:" + strJson, e); return false; } DBCollection dBCollection = initCollection(collectionName); dBCollection.insert(dbo); sequoiadbDatasource.close(dBCollection.getSequoiadb()); return true; } public static boolean insertNestJson(String collectionName, String strJson, String strJson2, String nameOfNest) { BSONObject dbo = null; try { dbo = (BasicBSONObject) JSON.parse(strJson); //添加异常处理 } catch (Exception e) { log.error("解析json字符串异常,传入的字符串为:" + strJson, e); return false; } BSONObject dbo2 = null; try { dbo2 = (BasicBSONObject) JSON.parse(strJson2); //添加异常处理 } catch (Exception e) { log.error("解析json字符串异常,传入的字符串为:" + strJson, e); return false; } dbo.put(nameOfNest, dbo2); DBCollection dBCollection = initCollection(collectionName); Object object = dBCollection.insert(dbo); sequoiadbDatasource.close(dBCollection.getSequoiadb()); return true; } //1 public static boolean isExist(String collectionName, String matcher) { if (null == queryOne(collectionName, matcher, matcher, matcher, null)) { return false; } else { return true; } } public static BasicBSONObject str2BSONObject(String jsonString) { return (BasicBSONObject) JSON.parse(jsonString); } public static List exec(String sql) { DBCursor c = null; Sequoiadb seq = null; try { seq = sequoiadbDatasource.getConnection(); c = seq.exec(sql); } catch (BaseException e) { e.printStackTrace(); } catch (InterruptedException ex) { Logger.getLogger(Squ.class.getName()).log(Level.SEVERE, null, ex); } if (c != null && c.hasNext()) { List list = new ArrayList(); while (c.hasNext()) { list.add(c.getNext()); } if (seq != null) { sequoiadbDatasource.close(seq); } return list; } else { if (seq != null) { sequoiadbDatasource.close(seq); } return null; } } public static String exeSql(String sql) { return list2String(exec(sql)); } public static String exe(String sql) { return list2String(exec(sql)); } public static boolean execUpdate(String sql) { Sequoiadb seq = null; try { seq = sequoiadbDatasource.getConnection(); seq.execUpdate(sql); sequoiadbDatasource.close(seq); return true; } catch (BaseException e) { sequoiadbDatasource.close(seq); e.printStackTrace(); log.warn(sql, e); return false; } catch (InterruptedException ex) { Logger.getLogger(Squ.class.getName()).log(Level.SEVERE, null, ex); return false; } } private static String _query(String cl, String matcher, String selector, String orderBy, String hint, long skipRows, long returnRows) { DBCollection dbc = initCollection(cl); String jsonString = cur2jsonstr(dbc.query(matcher, selector, orderBy, hint, skipRows, returnRows)); sequoiadbDatasource.close(dbc.getSequoiadb()); return jsonString; } public static String query(String cl, String matcher, String selector, String orderBy, String hint, long skipRows, long returnRows) { return _query(cl, matcher, selector, orderBy, hint, skipRows, returnRows); } //matcher test public static String query(String cl, String matcher) { return _query(cl, matcher, null, null, null, 0, 0); } //matcher test public static String query(String cl, String matcher, String selector) { return _query(cl, matcher, selector, null, null, 0, 0); } public static List query4roomids(String cl, String matcher, String selector) { DBCollection dbc = initCollection(cl); DBCursor dBCursor = dbc.query(matcher, selector, null, null, 0, 0); sequoiadbDatasource.close(dbc.getSequoiadb()); return cur2list(dBCursor); } //returnRows test public static String query(String cl, String matcher, long returnRows) { return _query(cl, matcher, null, null, null, 0L, returnRows); } // selector {filed:1} public static String query(String cl, String matcher, String selector, long returnRows) { return _query(cl, matcher, selector, null, null, 0L, returnRows); } // selector {filed:1} public static String query(String cl, String matcher, String selector, long skipRows, long returnRows) { return _query(cl, matcher, selector, null, null, skipRows, returnRows); } // orderBy {filed:1/-1} public static String query(String cl, String matcher, String selector, String orderBy, long returnRows) { return _query(cl, matcher, selector, orderBy, null, 0L, returnRows); } //hint (index) {} public static DBCursor query(String cl, String matcher, String selector, String orderBy, String hint, long returnRows) { DBCollection dbc = initCollection(cl); DBCursor dbcu = dbc.query(matcher, selector, orderBy, hint, 0L, returnRows); sequoiadbDatasource.close(dbc.getSequoiadb()); return dbcu; } public static List query2(String cl, String matcher, String selector, String orderBy, String hint, long returnRows, List<String> list) { DBCollection dbc = initCollection(cl); DBCursor c = dbc.query(matcher, selector, orderBy, hint, 0L, returnRows); if (c != null && c.hasNext()) { while (c.hasNext()) { String str1 = (String) c.getNext().get("acc"); for (int j = 0; j < list.size(); j++) { String str2 = list.get(j); if (str2.equals(str1)) { list.remove(str1); } } } } else { sequoiadbDatasource.close(dbc.getSequoiadb()); return list;//直接返回生成的推荐号 } sequoiadbDatasource.close(dbc.getSequoiadb()); return list; } public static String query(String cl, String matcher, long returnRows, long skipRows) { return _query(cl, matcher, null, null, null, skipRows, returnRows); } //1 public static BSONObject queryOne(String collectionName, String matcher, String selector, String orderBy, String hint) { DBCollection dBCollection = initCollection(collectionName); BSONObject bSONObject = dBCollection.queryOne(str2BSONObject(matcher), str2BSONObject(selector), str2BSONObject(orderBy), str2BSONObject(hint), 0); sequoiadbDatasource.close(dBCollection.getSequoiadb()); return bSONObject; } public static String query(String collectionName) { return _query(collectionName, null, null, null, null, 0, 0); } public static String query(String collectionName, String matcher, String selector, String orderBy, String hint, int limitNum) { return _query(collectionName, matcher, selector, orderBy, hint, limitNum, limitNum); } public static void update(String cl, String matcher, String modifier, String hint) { DBCollection dbc = initCollection(cl); dbc.update(matcher, modifier, hint); sequoiadbDatasource.close(dbc.getSequoiadb()); } public static void update$insert(String cl, String matcher, String modifier, String hint) { DBCollection dbc = initCollection(cl); dbc.update(matcher, modifier, hint); sequoiadbDatasource.close(dbc.getSequoiadb()); } public static void update$unsetAll(String cl, String matcher, String field, String hint) { DBCollection dbc = initCollection(cl); dbc.update(matcher, "{$unset:" + field + ":[]}", hint); // Squ.update("friend", "{}", "{$unset:{label:[]}}", "{}"); sequoiadbDatasource.close(dbc.getSequoiadb()); } public static void update$unset(String cl, String matcher, String modifier, String hint) { DBCollection dbc = initCollection(cl); dbc.update(matcher, "{$unset:" + modifier + "}", hint); // Squ.update("friend", "{}", "{$unset:{label:[33,44,55]}}", "{}"); sequoiadbDatasource.close(dbc.getSequoiadb()); } public static void update$addtoset(String cl, String matcher, String modifier, String hint) { DBCollection dbc = initCollection(cl); dbc.update(matcher, "{$addtoset:" + modifier + "}", hint); // Squ.upsert("friend", "{}", "{$addtoset:{label:[33,44,55]}}", "{}"); sequoiadbDatasource.close(dbc.getSequoiadb()); } public static boolean update(String collectionName, String matcher, String modifier) { DBCollection dbc = initCollection(collectionName); dbc.update(matcher, modifier, null); sequoiadbDatasource.close(dbc.getSequoiadb()); return true; } public static boolean update$set(String collectionName, String matcher, String modifier) { DBCollection dbc = null; try { dbc = initCollection(collectionName); dbc.update(matcher, "{$set:" + modifier + "}", null); sequoiadbDatasource.close(dbc.getSequoiadb()); } catch (Exception e) { log.debug("", e); sequoiadbDatasource.close(dbc.getSequoiadb()); return false; } return true; } /** * 不存在会自动插入新记录 * * @param cl * @param matcher * @param modifier * @param hint */ public static void upsert(String cl, String matcher, String modifier, String hint) { DBCollection dbc = initCollection(cl); BSONObject ma = null; BSONObject mo = null; BSONObject hi = null; if (matcher != null) { ma = (BSONObject) JSON.parse(matcher); } if (modifier != null) { mo = (BSONObject) JSON.parse(modifier); } if (hint != null) { hi = (BSONObject) JSON.parse(hint); } dbc.upsert(ma, mo, hi); sequoiadbDatasource.close(dbc.getSequoiadb()); } public static String strs2json(String... key_val) { if (key_val.length % 2 != 0) { } String strJson = null; if (key_val != null) { StringBuilder sb = new StringBuilder(); sb.append("{"); int i = 0; while (key_val[i] != null) { sb.append(key_val[i]).append(":\"").append(key_val[++i]).append("\""); if (i < key_val.length - 1) { sb.append(","); i++; } else { key_val[i] = null; } } sb.append("}"); strJson = sb.toString(); } return strJson; } public static List cur2list(DBCursor c) { if (c != null && c.hasNext()) { List list = new ArrayList(); while (c.hasNext()) { list.add(c.getNext()); } return list; } return null; } public static String cur2jsonstr(DBCursor c) { String jsonString = ""; if (c != null && c.hasNext()) { while (c.hasNext()) { jsonString = jsonString + (c.getNext().toString()); } c.close(); return jsonString; } return "{}"; } private static String list2String(List list) { if (list != null) { StringBuilder sb = new StringBuilder(); list.stream().forEach((Object s) -> { sb.append(s).append(","); }); return sb.toString(); } else { return null; } } public static List<String> queryList(String collectionName, String string, String acc1_id0, String string0, String string1, int i, int DB_SEARCH_REM_COUNT, List<String> list) { return query2(collectionName, string, string1, string1, string, i, list); } public static void remove(String collectionName, String match) { DBCollection cl = initCollection(collectionName); cl.delete(parse2BasicBSONObject(match)); sequoiadbDatasource.close(cl.getSequoiadb()); } public static JSONObject parse2JSONObject(String json) { return new JSONObject(json); } static class a implements BiConsumer { @Override public void accept(Object t, Object u) { // System.out.println("t=>>"+t); // System.out.println("u=>>"+u); } } public static BasicBSONObject parse2BasicBSONObject(String json) { BasicBSONObject bbo = new BasicBSONObject(); JSONObject obj = parse2JSONObject(json); // obj.forEach(new a() {}); obj.entrySet().forEach(key -> { System.out.println("c=>>" + obj.getString(key.getKey())); System.out.println("c=>>" + obj.optString(key.getKey())); }); return bbo; } public static void main2(String[] args) { parse2BasicBSONObject("{\n" + " \"_id\":\"testuser8\",\n" + " \"UID\":\"testuser\",\n" + " \"CDATE\":\"2015-05-10 17:28:50\",\n" + " \"IDATE\":\"2015-05-10 17:28:50\",\n" + " \"CARDTL\":\"{\\\"HEADPIC\\\":\\\"\\\",\\\"NICK\\\":\\\"1\\\",\\\"name\\\":\\\"2\\\",\\\"skill\\\":\\\"3\\\"}\",\n" + " \"NICK\":\"\",\n" + " \"NID\":\"8\",\n" + " \"HEADPIC\":\"\",\n" + " \"UDATE\":{\n" + " \"$date\":\"2015-05-10T09:28:50.668Z\"\n" + " },\n" + " \"UD\":\"testuser\",\n" + " \"URID\":\"urid\",\n" + " \"ORANGE\":\"uId:个人信息标签2\"\n" + "}"); } }
相关推荐
测试过程中,sysbench向SequoiaDB集群导入32张包含1亿条记录的表,并对SequoiaSQL-MySQL实例施加压力,每个实例连接本地Coord节点。并发请求的数量逐步提升,每次测试持续5分钟。在SequoiaDB的所有组件保持默认配置...
为了利用SequoiaDB的存储能力,SequoiaDB为Spark开发了连接器,使得SparkSQL可以从SequoiaDB中并发获取数据并进行计算,通过在每个Spark Worker的CLASSPATH中添加相关jar包,即可实现对接。 性能优化是关键,这包括...
6. **测试连接**:配置完成后,点击“测试”按钮以验证连接是否成功。如果一切正常,你应该会看到一个成功的提示。 7. **应用程序集成**:现在,你可以使用支持ODBC的应用程序连接到SYBSE数据库。只需在应用程序中...
基于Maxwell设计的经典280W 4025RPM高效率科尔摩根12极39槽TBM无框力矩电机:生产与学习双重应用案例,基于Maxwell设计的经典280W高转速科尔摩根TBM无框力矩电机:7615系列案例解析与应用实践,基于maxwwell设计的经典280W,4025RPM 内转子 科尔摩根 12极39槽 TBM无框力矩电机,7615系列。 该案例可用于生产,或者学习用,(157) ,maxwell设计; 280W; 4025RPM内转子; 科尔摩根; 12极39槽TBM无框力矩电机; 7615系列; 生产/学习用。,基于Maxwell设计,高功率280W 12极39槽TBM无框力矩电机:生产与学习双用途案例
基于碳交易的微网优化模型的Matlab设计与实现策略分析,基于碳交易的微网优化模型的Matlab设计与实现探讨,考虑碳交易的微网优化模型matlab ,考虑碳交易; 微网优化模型; MATLAB;,基于Matlab的碳交易微网优化模型研究
二级2025模拟试题(答案版)
OpenCV是一个功能强大的计算机视觉库,它提供了多种工具和算法来处理图像和视频数据。在C++中,OpenCV可以用于实现基础的人脸识别功能,包括从摄像头、图片和视频中识别人脸,以及通过PCA(主成分分析)提取图像轮廓。以下是对本资源大体的介绍: 1. 从摄像头中识别人脸:通过使用OpenCV的Haar特征分类器,我们可以实时从摄像头捕获的视频流中检测人脸。这个过程涉及到将视频帧转换为灰度图像,然后使用预训练的Haar级联分类器来识别人脸区域。 2. 从视频中识别出所有人脸和人眼:在视频流中,除了检测人脸,我们还可以进一步识别人眼。这通常涉及到使用额外的Haar级联分类器来定位人眼区域,从而实现对人脸特征的更细致分析。 3. 从图片中检测出人脸:对于静态图片,OpenCV同样能够检测人脸。通过加载图片,转换为灰度图,然后应用Haar级联分类器,我们可以在图片中标记出人脸的位置。 4. PCA提取图像轮廓:PCA是一种统计方法,用于分析和解释数据中的模式。在图像处理中,PCA可以用来提取图像的主要轮廓特征,这对于人脸识别技术中的面部特征提取尤
麻雀搜索算法(SSA)自适应t分布改进版:卓越性能与优化代码注释,适合深度学习。,自适应t分布改进麻雀搜索算法(TSSA)——卓越的学习样本,优化效果出众,麻雀搜索算法(SSA)改进——采用自适应t分布改进麻雀位置(TSSA),优化后明显要优于基础SSA(代码基本每一步都有注释,代码质量极高,非常适合学习) ,TSSA(自适应t分布麻雀位置算法);注释详尽;高质量代码;适合学习;算法改进结果优异;TSSA相比基础SSA。,自适应T分布优化麻雀搜索算法:代码详解与学习首选(TSSA改进版)
锂电池主动均衡Simulink仿真研究:多种均衡策略与电路架构的深度探讨,锂电池主动均衡与多种均衡策略的Simulink仿真研究:buckboost拓扑及多层次电路分析,锂电池主动均衡simulink仿真 四节电池 基于buckboost(升降压)拓扑 (还有传统电感均衡+开关电容均衡+双向反激均衡+双层准谐振均衡+环形均衡器+cuk+耦合电感)被动均衡电阻式均衡 、分层架构式均衡以及分层式电路均衡,多层次电路,充放电。 ,核心关键词: 锂电池; 主动均衡; Simulink仿真; 四节电池; BuckBoost拓扑; 传统电感均衡; 开关电容均衡; 双向反激均衡; 双层准谐振均衡; 环形均衡器; CUK均衡; 耦合电感均衡; 被动均衡; 电阻式均衡; 分层架构式均衡; 多层次电路; 充放电。,锂电池均衡策略研究:Simulink仿真下的多拓扑主动与被动均衡技术
S7-1500和分布式外围系统ET200MP模块数据
内置式永磁同步电机无位置传感器模型:基于滑膜观测器和MTPA技术的深度探究,内置式永磁同步电机基于滑膜观测器和MTPA的无位置传感器模型研究,基于滑膜观测器和MTPA的内置式永磁同步电机无位置传感器模型 ,基于滑膜观测器;MTPA;内置式永磁同步电机;无位置传感器模型,基于滑膜观测与MTPA算法的永磁同步电机无位置传感器模型
centos7操作系统下安装docker,及docker常用命令、在docker中运行nginx示例,包括 1.设置yum的仓库 2.安装 Docker Engine-Community 3.docker使用 4.查看docker进程是否启动成功 5.docker常用命令及nginx示例 6.常见问题
给曙光服务器安装windows2012r2时候找不到磁盘,问厂家工程师要的raid卡驱动,内含主流大多数品牌raid卡驱动
数学建模相关主题资源2
西门子四轴卧式加工中心后处理系统:828D至840D支持,四轴联动制造解决方案,图档处理与试看程序一应俱全。,西门子四轴卧加后处理系统:支持828D至840D系统,四轴联动高精度制造解决方案,西门子四轴卧加后处理,支持828D~840D系统,支持四轴联动,可制制,看清楚联系,可提供图档处理试看程序 ,核心关键词:西门子四轴卧加后处理; 828D~840D系统支持; 四轴联动; 制程; 联系; 图档处理试看程序。,西门子四轴卧加后处理程序,支持多种系统与四轴联动
MATLAB下基于列约束生成法CCG的两阶段鲁棒优化问题求解入门指南:算法验证与经典文献参考,MATLAB下基于列约束生成法CCG的两阶段鲁棒优化问题求解入门指南:算法验证与文献参考,MATLAB代码:基于列约束生成法CCG的两阶段问题求解 关键词:两阶段鲁棒 列约束生成法 CCG算法 参考文档:《Solving two-stage robust optimization problems using a column-and-constraint generation method》 仿真平台:MATLAB YALMIP+CPLEX 主要内容:代码构建了两阶段鲁棒优化模型,并用文档中的相对简单的算例,进行CCG算法的验证,此篇文献是CCG算法或者列约束生成算法的入门级文献,其经典程度不言而喻,几乎每个搞CCG的两阶段鲁棒的人都绕不过此篇文献 ,两阶段鲁棒;列约束生成法;CCG算法;MATLAB;YALMIP+CPLEX;入门级文献。,MATLAB代码实现:基于两阶段鲁棒与列约束生成法CCG的算法验证研究
“生热研究的全面解读:探究参数已配置的Comsol模型中的18650圆柱锂电池表现”,探究已配置参数的COMSOL模型下的锂电池生热现象:18650圆柱锂电池模拟分析,出一个18650圆柱锂电池comsol模型 参数已配置,生热研究 ,出模型; 18650圆柱锂电池; comsol模型; 参数配置; 生热研究,构建18650电池的COMSOL热研究模型
移动端多端运行的知识付费管理系统源码,TP6+Layui+MySQL后端支持,功能丰富,涵盖直播、点播、管理全功能及礼物互动,基于UniApp跨平台开发的移动端知识付费管理系统源码:多端互通、全功能齐备、后端采用TP6与PHP及Layui前端,搭载MySQL数据库与直播、点播、管理、礼物等功能的强大整合。,知识付费管理系统源码,移动端uniApp开发,app h5 小程序一套代码多端运行,后端php(tp6)+layui+MySQL,功能齐全,直播,点播,管理,礼物等等功能应有尽有 ,知识付费;管理系统源码;移动端uniApp开发;多端运行;后端php(tp6);layui;MySQL;直播点播;管理功能;礼物功能,知识付费管理平台:全功能多端运行系统源码(PHP+Layui+MySQL)
基于Python+Django+MySQL的个性化图书推荐系统:协同过滤推荐,智能部署,用户定制功能,基于Python+Django+MySQL的个性化图书推荐系统:协同过滤推荐,智能部署,用户定制功能,Python+Django+Mysql个性化图书推荐系统 图书在线推荐系统 基于用户、项目、内容的协同过滤推荐算法。 帮远程安装部署 一、项目简介 1、开发工具和实现技术 Python3.8,Django4,mysql8,navicat数据库管理工具,html页面,javascript脚本,jquery脚本,bootstrap前端框架,layer弹窗组件、webuploader文件上传组件等。 2、项目功能 前台用户包含:注册、登录、注销、浏览图书、搜索图书、信息修改、密码修改、兴趣喜好标签、图书评分、图书收藏、图书评论、热点推荐、个性化推荐图书等功能; 后台管理员包含:用户管理、图书管理、图书类型管理、评分管理、收藏管理、评论管理、兴趣喜好标签管理、权限管理等。 个性化推荐功能: 无论是否登录,在前台首页展示热点推荐(根据图书被收藏数量降序推荐)。 登录用户,在前台首页展示个性化推荐
STM32企业级锅炉控制器源码分享:真实项目经验,带注释完整源码助你快速掌握实战经验,STM32企业级锅炉控制器源码:真实项目经验,完整注释,助力初学者快速上手,stm32真实企业项目源码 项目要求与网上搜的那些开发板的例程完全不在一个级别,也不是那些凑合性质的项目可以比拟的。 项目是企业级产品的要求开发的,能够让初学者了解真实的企业项目是怎么样的,增加工作经验 企业真实项目网上稀缺,完整源码带注释,适合没有参与工作或者刚学stm32的增加工作经验, 这是一个锅炉的控制器,有流程图和程序协议的介绍。 ,stm32源码;企业级项目;工作经验;锅炉控制器;流程图;程序协议,基于STM32的真实企业级锅炉控制器项目源码