- MySQL复习题
一.填空题1.关系数据库的标准语言是SQL。2.数据库发展的3个阶段中,数据独立性最高的是阶段数据库系统。3.概念模型中的3种基本联系分别是一对一、一对多和多对多。4.MySQL配置文件的文件名是my.ini或my.cnf。5.在MySQL配置文件中,datadir用于指定数据库文件的保存目录。6.添加IFNOTEXISTS可在创建的数据库已存在时防止程序报错。7.MySQL提供的SHOWCREA
- 搭建云手机教程
云博客-资源宝
智能手机
搭建云手机教程本教程由分享:ziyouhua资源宝整理分享:www.httple.net首先检查自己vps是否支持这个项目sudoaptinstallcpu-checkerkvm-ok如果显示INFO:/dev/kvmexistsKVMaccelerationcanbeused表示支持,可以继续往下看ac13首先安装dockercurl-fsSLhttps://get.docker.com|sud
- 学习Java项目--尚庭公寓--第7天
流萤老公学Java
Java第一个后端项目学习学习
一、开发准备:Redis、knife4j入门1、Redis客户端使用redisInsight官方开源的图形化客户端。也可以使用命令行模式2、常用数据类型及命令通用命令(各种数据类型都可以使用的命令):keys*:查看所有键dbsize:查看键个数exists:判断key是否存在del:删除keyttl:查看key剩余过期时间String类型命令:setkeyvalue:getkeyincr:自增操
- Error: C++14 standard requested but CXX14 is not defined
闹钟又响了
在R中安装包如果遇到上述问题,基本上去修改一下Makevars文件即可。可以用vim编辑,也可以在R中编辑,如下dotR<-file.path(Sys.getenv("HOME"),".R")if(!file.exists(dotR))dir.create(dotR)M<-file.path(dotR,"Makevars")if(!file.exists(M))file.create(M)cat(
- Leetcode力扣 MySQL数据库 1532 最近三笔订单
ziko-1101
Leetcode数据库mysqlleetcode
1532最近三笔订单SQL架构CreatetableIfNotExistsCustomers_1532(customer_idint,namevarchar(10));CreatetableIfNotExistsOrders_1532(order_idint,order_datedate,customer_idint,costint);TruncatetableCustomers_1532;ins
- Leetcode力扣 MySQL数据库 1393 股票的资本损益
ziko-1101
Leetcode数据库leetcodemysql
1393股票的资本损益SQL架构CreateTableIfNotExistsStocks_1393(stock_namevarchar(15),operationENUM('Sell','Buy'),operation_dayint,priceint);TruncatetableStocks_1393;insertintoStocks_1393(stock_name,operation,opera
- Leetcode力扣 MySQL数据库 1440 计算布尔表达式的值
ziko-1101
Leetcode数据库mysqlleetcode
1440计算布尔表达式的值SQL架构CreateTableIfNotExistsVariables_1440(namevarchar(3),valueint);CreateTableIfNotExistsExpressions_1440(left_operandvarchar(3),operatorENUM('>','','y');insertintoExpressions_1440(left_o
- MySQL常见命令
Heliotrope_Sun
测试mysql数据库
唯有热爱,恒常如新一、连接与登录#本地登录mysql-uroot-p#远程登录mysql-h192.168.1.10-P3306-uuser-p#指定库直接登录mysql-uroot-pdb_name注意:-p后面不能有空格,否则空格也算密码的一部分。二、数据库(database)操作--查看所有库SHOWDATABASES;--创建库并指定字符集CREATEDATABASEIFNOTEXISTS
- Hive修改表备注, 字段备注, 字段类型
GYBE
修改表的备注ALTERTABLE数据库名.表名SETTBLPROPERTIES('comment'='新的表备注');修改字段备注,字段类型ALTERTABLE数据库名.表名CHANGECOLUMN字段名新的字段名(如果不变就保持原字段)字段类型(若不变就采用原来的字段)COMMENT'新的字段备注';Example:CREATEDATABASEIFNOTEXISTScurtisCOMMENT'笔
- Redisson加锁脚本分析
SHENKEM
Redisson
if(redis.call('exists',KEYS[1])==0)then"+"redis.call('hincrby',KEYS[1],ARGV[2],1);"+"redis.call('pexpire',KEYS[1],ARGV[1]);"+"returnnil;"+"end;"+"if(redis.call('hexists',KEYS[1],ARGV[2])==1)then"+"red
- Invalid `Podfile` file: undefined method `exists?‘ for File:Class解决方案
mac系统重装之后运行之前的Flutter项目,报下面的错误:当时的Mac系统为12.5.1Flutter的版本号为3.0.5ruby的版本号为3.2.0[!]Invalid`Podfile`file:undefinedmethod`exists?'forFile:Classreturn[]unlessFile.exists?file_path^^^^^^^^Didyoumean?exist?.#
- 在本地127.0.0.1上跨实例访问远程数据库
和麻
数据库
1.确保可以和远程目标库连接通畅2.确保开启了sqlserver的TCP/IP3.创建LInkedserver-------先删除掉已存在的Remote203IFEXISTS(SELECT1FROMsys.serversWHEREname='Remote203')BEGINEXECsp_dropserver'Remote203','droplogins';ENDGO------------创建链接
- python +pyautocad 在CAD中 画一个线段带箭头
默金……
AutoCADpython前端数据库
python+pyautocad在CAD中画一个线段带箭头#!/usr/bin/envpython#-*-coding:utf-8-*-frompyautocadimportAutocad,APoint,aDoubleimportmathpyacad=Autocad(create_if_not_exists=True)pyacad.prompt("Hello!Autocadfrompyautoca
- Gradle:Cannot add task ‘clean‘ as a task with that name already exists.
海阔天空6688
开发工具Androidgradleandroid
Gradle编译项目报错:Cannotaddtask'clean'asataskwiththatnamealreadyexists.提示的是gradle中的clean方法已经存在了,冲突了,把项目中build.gradle的clean方法注释掉或者删掉重新编译就也可以了。buildscript{repositories{}dependencies{classpath'com.android.too
- React 中使用 ECharts 报错 "series not exists"
问题现象在React项目中使用ECharts时,控制台报错:seriesnotexists.Legenddatashouldbesamewithseriesnameordataname但已确认legend.data与series.name完全匹配,代码逻辑看似正确。问题根源未正确注册ECharts图表组件。自ECharts5起,官方采用按需引入(tree-shaking)的模块化设计,需显式注册图
- Django 使用 matplotlib 遇到 RuntimeError: main thread is not in main loop 解决办法
月小水长
PythonWebdjangomatplotlibpythonanrthread
背景在django开发的接口服务中需要返回由matplotlib生成的图片,第一次页面请求接口正常,刷新页面后出现了以下异常导致服务崩溃,ifself._tk.getboolean(self._tk.call("info","exists",self._name)):RuntimeError:mainthreadisnotinmainloop这个RuntimeError:mainthreadisn
- Redis 实现同步锁
1、技术方案1.1、redis的基本命令1)SETNX命令(SETifNoteXists)语法:SETNXkeyvalue功能:当且仅当key不存在,将key的值设为value,并返回1;若给定的key已经存在,则SETNX不做任何动作,并返回0。2)expire命令语法:expireKEYseconds功能:设置key的过期时间。如果key已过期,将会被自动删除。3)DEL命令语法:DELkey
- Spring Data JPA基本方法调用规律
goxingman
JPAwindows
一、命名规则核心逻辑派生方法名由三部分组成:findBy+属性名+条件,其中:前缀(固定关键词):findBy、deleteBy、countBy、existsBy等。属性名:实体类的字段名(需严格匹配驼峰命名)。条件:可选,如GreaterThan、LessThan、Like等。示例://方法名=前缀+属性名+条件ListfindByAgeGreaterThan(intage);//查询年龄大于a
- Python替换docx模板文件内容
amux9527
笔记python
#-*-coding:utf-8-*-#File:docx模板文件内容替换.py#Time:2022-07-2910:13#Author:Da#Description:docx模板文件内容替换importosimportshutilimportzipfile#解压docx文件到指定目录defunpack(input_file,out_file):ifos.path.exists(input_fil
- Redis命令
郭尘帅666
redis数据库缓存
1.Redis五大常用数据类型字符串(String)列表(List)哈希表(Hash)集合(Set)有序集合(ZSet)2.key的常用命令语法作用keys*查看当前库所有的keyexistskey判断某个key是否存在typekey查看你的key是什么类型unlinkkey根据value删除非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的删除会在后续异步中操作。delky删除指定
- Redis 分布式锁详解
wcy0310
redisredis分布式
Redis分布式锁的实现方法Redis分布式锁是一种利用Redis实现跨进程、跨服务器的互斥锁机制,常用于解决分布式系统中的并发控制问题。以下是几种常见的实现方式及其关键细节。基于SETNX和EXPIRE的实现使用SETNX(SETifNoteXists)命令尝试设置一个键,如果键不存在则设置成功,返回1;否则返回0。结合EXPIRE设置锁的超时时间,避免死锁。SETNXlock_keyuniqu
- Unity 打开文件夹
打开Windows的资源管理器按照path打开文件夹////////***打开文件夹///publicstaticvoidOpenDirectory(stringpath){if(string.IsNullOrEmpty(path))return;path=path.Replace("/","\\");if(!Directory.Exists(path)){Debug.LogError("NoDi
- Redisson实现的分布式锁核心原理
俏布斯
redis分布式redis
Redisson实现的分布式锁核心原理是利用Redis的原子操作、数据结构和发布订阅机制,在单节点或集群环境下提供互斥、可重入、自动续期(看门狗)、公平锁等特性。其核心机制如下:核心原理与流程锁获取(加锁)Lua脚本保证原子性:当线程尝试获取锁时,Redisson会执行一个Lua脚本到Redis服务器。脚本的核心逻辑是:if(redis.call('exists',KEYS[1])==0)then
- python文件遍历夹,python实现文件夹遍历
kpbs
python文件遍历夹
python中os.path模块用于操作文件或文件夹os.path.exists(path)判断文件路径是否存在dir="c:\windows"ifos.path.exists(dir):print"direxists"else:print"noexists"os.path.isfile(path)判断path是否是文件dir="c:\windows\system32\cmd.exe"ifos.p
- JMeter-常用断言方式
无量是空
JMeterjmeter
一、响应断言二、JSON断言1.JSON断言所在位置:断言->JSON断言2.JSON断言中的字段解析AssertJSONPathexists:json表达式,判断所字段是否存在,存在则为True,否则为FalseAdditionallyassertvalue:附加断言字段对应的值,匹配则为True,否则为FalseMatchasregularexpression:断言表达式,判断字段是否存在,存
- Python脚本,音频格式转换 和 视频格式转换
一、音频格式转换完整代码frompydubimportAudioSegmentimportosdefconvert_audio(input_dir,output_dir,target_format):ifnotos.path.exists(output_dir):os.makedirs(output_dir)forfilenameinos.listdir(input_dir):iffilename
- Hbase-表操作
红笺Code
Hbasehbase大数据数据分析非关系型数据库zookeeper
目录一、创建表:1.创建表时指定列族的属性2.创建表时不指定列族的属性多学一招:克隆表二、查看表信息三、查看表四、停用和启用表1.停用表2.启用表多学一招:停用或启用多个表五、判断表1.exists命令2.is_enabled命令3.is_disabled命令六、修改表1.修改表属性(1)添加属性(2)删除属性2.修改列族(1)修改列族属性(2)添加列族(3)删除列族七、删除表drop命令多学一招
- java数据保存到文件_Java把数据存储到本地txt文件
永不放弃yes
java数据保存到文件
码农公社210.net.cn210=102410月24日一个重要的节日--码农(程序员)节Java把数据存储到本地txt文件java存储数据,方便打印日志等1、覆盖以前的数据try{FilewriteName=newFile("D:\\data.txt");//相对路径,如果没有则要建立一个新的output.txt文件if(!writeName.exists()){writeName.create
- springboot项目中构建树结构数据返回
两点王爷
java数据结构数据处理springbootjava树结构
需要构建一个树结构返回(ID,PID),具体示例如下1、创建实体数据表--测试省份数据表DROPTABLEIFEXISTStest_province;CREATETABLEIFNOTEXISTStest_province(idBIGINT(32)NOTNULLAUTO_INCREMENTPRIMARYKEYCOMMENT'表ID',pidBIGINT(32)COMMENT'父级ID',nameVA
- EXISTS 和 NOT EXISTS 、IN (和 NOT IN)
步行cgn
数据库数据库oraclesql
在SQL中,EXISTS、NOTEXISTS和IN都是用于子查询的条件运算符,用于根据子查询的结果过滤主查询的行。它们之间的区别主要体现在工作方式、效率、对NULL值的处理以及适用场景上。1.EXISTS和NOTEXISTS作用:EXISTS:检查子查询是否至少返回一行。如果子查询返回至少一行,则条件为TRUE。NOTEXISTS:检查子查询是否没有返回任何行。如果子查询返回零行,则条件为TRUE
- Spring中@Value注解,需要注意的地方
无量
springbean@Valuexml
Spring 3以后,支持@Value注解的方式获取properties文件中的配置值,简化了读取配置文件的复杂操作
1、在applicationContext.xml文件(或引用文件中)中配置properties文件
<bean id="appProperty"
class="org.springframework.beans.fac
- mongoDB 分片
开窍的石头
mongodb
mongoDB的分片。要mongos查询数据时候 先查询configsvr看数据在那台shard上,configsvr上边放的是metar信息,指的是那条数据在那个片上。由此可以看出mongo在做分片的时候咱们至少要有一个configsvr,和两个以上的shard(片)信息。
第一步启动两台以上的mongo服务
&nb
- OVER(PARTITION BY)函数用法
0624chenhong
oracle
这篇写得很好,引自
http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html
OVER(PARTITION BY)函数用法
2010年10月26日
OVER(PARTITION BY)函数介绍
开窗函数 &nb
- Android开发中,ADB server didn't ACK 解决方法
一炮送你回车库
Android开发
首先通知:凡是安装360、豌豆荚、腾讯管家的全部卸载,然后再尝试。
一直没搞明白这个问题咋出现的,但今天看到一个方法,搞定了!原来是豌豆荚占用了 5037 端口导致。
参见原文章:一个豌豆荚引发的血案——关于ADB server didn't ACK的问题
简单来讲,首先将Windows任务进程中的豌豆荚干掉,如果还是不行,再继续按下列步骤排查。
&nb
- canvas中的像素绘制问题
换个号韩国红果果
JavaScriptcanvas
pixl的绘制,1.如果绘制点正处于相邻像素交叉线,绘制x像素的线宽,则从交叉线分别向前向后绘制x/2个像素,如果x/2是整数,则刚好填满x个像素,如果是小数,则先把整数格填满,再去绘制剩下的小数部分,绘制时,是将小数部分的颜色用来除以一个像素的宽度,颜色会变淡。所以要用整数坐标来画的话(即绘制点正处于相邻像素交叉线时),线宽必须是2的整数倍。否则会出现不饱满的像素。
2.如果绘制点为一个像素的
- 编码乱码问题
灵静志远
javajvmjsp编码
1、JVM中单个字符占用的字节长度跟编码方式有关,而默认编码方式又跟平台是一一对应的或说平台决定了默认字符编码方式;2、对于单个字符:ISO-8859-1单字节编码,GBK双字节编码,UTF-8三字节编码;因此中文平台(中文平台默认字符集编码GBK)下一个中文字符占2个字节,而英文平台(英文平台默认字符集编码Cp1252(类似于ISO-8859-1))。
3、getBytes()、getByte
- java 求几个月后的日期
darkranger
calendargetinstance
Date plandate = planDate.toDate();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(plandate);
// 取得三个月后时间
cal.add(Calendar.M
- 数据库设计的三大范式(通俗易懂)
aijuans
数据库复习
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出错误的数据库.
目前,主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称2NF。其余依此类推。
- 想学工作流怎么入手
atongyeye
jbpm
工作流在工作中变得越来越重要,很多朋友想学工作流却不知如何入手。 很多朋友习惯性的这看一点,那了解一点,既不系统,也容易半途而废。好比学武功,最好的办法是有一本武功秘籍。研究明白,则犹如打通任督二脉。
系统学习工作流,很重要的一本书《JBPM工作流开发指南》。
本人苦苦学习两个月,基本上可以解决大部分流程问题。整理一下学习思路,有兴趣的朋友可以参考下。
1 首先要
- Context和SQLiteOpenHelper创建数据库
百合不是茶
androidContext创建数据库
一直以为安卓数据库的创建就是使用SQLiteOpenHelper创建,但是最近在android的一本书上看到了Context也可以创建数据库,下面我们一起分析这两种方式创建数据库的方式和区别,重点在SQLiteOpenHelper
一:SQLiteOpenHelper创建数据库:
1,SQLi
- 浅谈group by和distinct
bijian1013
oracle数据库group bydistinct
group by和distinct只了去重意义一样,但是group by应用范围更广泛些,如分组汇总或者从聚合函数里筛选数据等。
譬如:统计每id数并且只显示数大于3
select id ,count(id) from ta
- vi opertion
征客丶
macoprationvi
进入 command mode (命令行模式)
按 esc 键
再按 shift + 冒号
注:以下命令中 带 $ 【在命令行模式下进行】,不带 $ 【在非命令行模式下进行】
一、文件操作
1.1、强制退出不保存
$ q!
1.2、保存
$ w
1.3、保存并退出
$ wq
1.4、刷新或重新加载已打开的文件
$ e
二、光标移动
2.1、跳到指定行
数字
- 【Spark十四】深入Spark RDD第三部分RDD基本API
bit1129
spark
对于K/V类型的RDD,如下操作是什么含义?
val rdd = sc.parallelize(List(("A",3),("C",6),("A",1),("B",5))
rdd.reduceByKey(_+_).collect
reduceByKey在这里的操作,是把
- java类加载机制
BlueSkator
java虚拟机
java类加载机制
1.java类加载器的树状结构
引导类加载器
^
|
扩展类加载器
^
|
系统类加载器
java使用代理模式来完成类加载,java的类加载器也有类似于继承的关系,引导类是最顶层的加载器,它是所有类的根加载器,它负责加载java核心库。当一个类加载器接到装载类到虚拟机的请求时,通常会代理给父类加载器,若已经是根加载器了,就自己完成加载。
虚拟机区分一个Cla
- 动态添加文本框
BreakingBad
文本框
<script> var num=1; function AddInput() { var str=""; str+="<input 
- 读《研磨设计模式》-代码笔记-单例模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
public class Singleton {
}
/*
* 懒汉模式。注意,getInstance如果在多线程环境中调用,需要加上synchronized,否则存在线程不安全问题
*/
class LazySingleton
- iOS应用打包发布常见问题
chenhbc
iosiOS发布iOS上传iOS打包
这个月公司安排我一个人做iOS客户端开发,由于急着用,我先发布一个版本,由于第一次发布iOS应用,期间出了不少问题,记录于此。
1、使用Application Loader 发布时报错:Communication error.please use diagnostic mode to check connectivity.you need to have outbound acc
- 工作流复杂拓扑结构处理新思路
comsci
设计模式工作算法企业应用OO
我们走的设计路线和国外的产品不太一样,不一样在哪里呢? 国外的流程的设计思路是通过事先定义一整套规则(类似XPDL)来约束和控制流程图的复杂度(我对国外的产品了解不够多,仅仅是在有限的了解程度上面提出这样的看法),从而避免在流程引擎中处理这些复杂的图的问题,而我们却没有通过事先定义这样的复杂的规则来约束和降低用户自定义流程图的灵活性,这样一来,在引擎和流程流转控制这一个层面就会遇到很
- oracle 11g新特性Flashback data archive
daizj
oracle
1. 什么是flashback data archive
Flashback data archive是oracle 11g中引入的一个新特性。Flashback archive是一个新的数据库对象,用于存储一个或多表的历史数据。Flashback archive是一个逻辑对象,概念上类似于表空间。实际上flashback archive可以看作是存储一个或多个表的所有事务变化的逻辑空间。
- 多叉树:2-3-4树
dieslrae
树
平衡树多叉树,每个节点最多有4个子节点和3个数据项,2,3,4的含义是指一个节点可能含有的子节点的个数,效率比红黑树稍差.一般不允许出现重复关键字值.2-3-4树有以下特征:
1、有一个数据项的节点总是有2个子节点(称为2-节点)
2、有两个数据项的节点总是有3个子节点(称为3-节
- C语言学习七动态分配 malloc的使用
dcj3sjt126com
clanguagemalloc
/*
2013年3月15日15:16:24
malloc 就memory(内存) allocate(分配)的缩写
本程序没有实际含义,只是理解使用
*/
# include <stdio.h>
# include <malloc.h>
int main(void)
{
int i = 5; //分配了4个字节 静态分配
int * p
- Objective-C编码规范[译]
dcj3sjt126com
代码规范
原文链接 : The official raywenderlich.com Objective-C style guide
原文作者 : raywenderlich.com Team
译文出自 : raywenderlich.com Objective-C编码规范
译者 : Sam Lau
- 0.性能优化-目录
frank1234
性能优化
从今天开始笔者陆续发表一些性能测试相关的文章,主要是对自己前段时间学习的总结,由于水平有限,性能测试领域很深,本人理解的也比较浅,欢迎各位大咖批评指正。
主要内容包括:
一、性能测试指标
吞吐量、TPS、响应时间、负载、可扩展性、PV、思考时间
http://frank1234.iteye.com/blog/2180305
二、性能测试策略
生产环境相同 基准测试 预热等
htt
- Java父类取得子类传递的泛型参数Class类型
happyqing
java泛型父类子类Class
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.junit.Test;
abstract class BaseDao<T> {
public void getType() {
//Class<E> clazz =
- 跟我学SpringMVC目录汇总贴、PDF下载、源码下载
jinnianshilongnian
springMVC
----广告--------------------------------------------------------------
网站核心商详页开发
掌握Java技术,掌握并发/异步工具使用,熟悉spring、ibatis框架;
掌握数据库技术,表设计和索引优化,分库分表/读写分离;
了解缓存技术,熟练使用如Redis/Memcached等主流技术;
了解Ngin
- the HTTP rewrite module requires the PCRE library
流浪鱼
rewrite
./configure: error: the HTTP rewrite module requires the PCRE library.
模块依赖性Nginx需要依赖下面3个包
1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )
2. rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
3. s
- 第12章 Ajax(中)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Optimize query with Query Stripping in Web Intelligence
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Optimize+query+with+Query+Stripping+in+Web+Intelligence
and a very straightfoward video
http://www.sdn.sap.com/irj/scn/events?rid=/library/uuid/40ec3a0c-936
- Java开发者写SQL时常犯的10个错误
tomcat_oracle
javasql
1、不用PreparedStatements 有意思的是,在JDBC出现了许多年后的今天,这个错误依然出现在博客、论坛和邮件列表中,即便要记住和理解它是一件很简单的事。开发者不使用PreparedStatements的原因可能有如下几个: 他们对PreparedStatements不了解 他们认为使用PreparedStatements太慢了 他们认为写Prepar
- 世纪互联与结盟有感
阿尔萨斯
10月10日,世纪互联与(Foxcon)签约成立合资公司,有感。
全球电子制造业巨头(全球500强企业)与世纪互联共同看好IDC、云计算等业务在中国的增长空间,双方迅速果断出手,在资本层面上达成合作,此举体现了全球电子制造业巨头对世纪互联IDC业务的欣赏与信任,另一方面反映出世纪互联目前良好的运营状况与广阔的发展前景。
众所周知,精于电子产品制造(世界第一),对于世纪互联而言,能够与结盟