新聞中心
隨著移動(dòng)互聯(lián)網(wǎng)的迅速發(fā)展,移動(dòng)應(yīng)用日益流行。在許多移動(dòng)應(yīng)用中,數(shù)據(jù)庫(kù)是必不可少的組件。然而,當(dāng)應(yīng)用程序需要訪問(wèn)多個(gè)數(shù)據(jù)庫(kù)時(shí),連接管理問(wèn)題就變得復(fù)雜,并且會(huì)導(dǎo)致性能下降和安全漏洞。是一種解決方案,可以使應(yīng)用程序更加高效、可靠和安全。

本文將介紹如何在Android應(yīng)用中實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享。將討論什么是數(shù)據(jù)庫(kù)連接共享,它的優(yōu)勢(shì)和挑戰(zhàn)。然后,將探討如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享的不同方法和實(shí)例。
什么是數(shù)據(jù)庫(kù)連接共享?
數(shù)據(jù)庫(kù)連接共享是一種通過(guò)共享數(shù)據(jù)庫(kù)連接來(lái)提高應(yīng)用程序性能和安全性的技術(shù)。當(dāng)應(yīng)用程序需要訪問(wèn)多個(gè)數(shù)據(jù)庫(kù)時(shí),它通常需要分別連接每個(gè)數(shù)據(jù)庫(kù)。這可能導(dǎo)致性能下降、連接管理中出現(xiàn)混亂或錯(cuò)誤,并且會(huì)使應(yīng)用程序更容易受到攻擊,因?yàn)楣粽呖梢栽噲D竊取或利用未加密或弱密碼的數(shù)據(jù)庫(kù)連接。
通過(guò)數(shù)據(jù)庫(kù)連接共享,應(yīng)用程序可以將數(shù)據(jù)庫(kù)連接池管理為單個(gè)實(shí)例。這意味著多個(gè)應(yīng)用程序可以共享數(shù)據(jù)庫(kù)連接池,從而減少了創(chuàng)建和關(guān)閉連接的次數(shù)。此外,數(shù)據(jù)庫(kù)連接共享還可以提供更好的連接管理和安全性,例如權(quán)限控制、加密和訪問(wèn)控制。
數(shù)據(jù)庫(kù)連接共享的優(yōu)勢(shì)和挑戰(zhàn)
數(shù)據(jù)庫(kù)連接共享具有許多優(yōu)點(diǎn),包括:
1、 提高性能:共享數(shù)據(jù)庫(kù)連接可以減少創(chuàng)建和關(guān)閉連接的頻率,從而提高應(yīng)用程序性能和吞吐量。
2、 更好的資源利用率:通過(guò)共享數(shù)據(jù)庫(kù)連接池,多個(gè)應(yīng)用程序可以共享相同的數(shù)據(jù)庫(kù)連接,提高資源利用率。
3、 強(qiáng)化安全性:數(shù)據(jù)庫(kù)連接池可以提供更好的安全性,例如加密、權(quán)限控制和訪問(wèn)控制。
但是,數(shù)據(jù)庫(kù)連接共享也有一些挑戰(zhàn),例如:
1、 實(shí)現(xiàn)復(fù)雜:數(shù)據(jù)庫(kù)連接共享需要考慮多個(gè)應(yīng)用程序同時(shí)訪問(wèn)連接池的情況,這使得實(shí)現(xiàn)變得更為復(fù)雜。
2、 可能導(dǎo)致阻塞:如果連接池中的連接不足,應(yīng)用程序可能會(huì)因?yàn)榈却渌B接而被阻塞。
3、 安全性挑戰(zhàn):如果未正確配置連接池權(quán)限和訪問(wèn)控制,連接池共享可能會(huì)引入安全漏洞。
如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享
Android應(yīng)用中實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享的方法有很多,包括使用Java EE資源層(JNDI)和使用SQLiteOpenHelper等。下面將介紹兩種方法。
方法一:使用Java EE資源層
Java EE資源層(JNDI)是Java EE平臺(tái)的一部分,提供訪問(wèn)數(shù)據(jù)源的標(biāo)準(zhǔn)API。在Android平臺(tái)上,可以使用OpenXava框架來(lái)實(shí)現(xiàn)JNDI連接池,并通過(guò)標(biāo)準(zhǔn)API訪問(wèn)JNDI數(shù)據(jù)源。以下是實(shí)現(xiàn)JNDI連接池的步驟:
1、添加OpenXava庫(kù)
將OpenXava庫(kù)添加到你的項(xiàng)目中,例如:
dependencies {
implementation ‘org.openxava:openxava:6.3.3’
}
2、在web.xml文件中定義連接池
需要在web.xml文件中定義連接池,例如:
Connection Pool
jdbc/TestConnection
javax.sql.DataSource
Contner
3、配置連接池屬性
在context.xml文件中配置連接池屬性,例如:
maxActive=”100″ maxIdle=”30″ maxWt=”10000″
username=”testuser” password=”testpass” driverClassName=”com.mysql.jdbc.Driver”
url=”jdbc:mysql://localhost:3306/test”/>
4、獲取連接
獲取連接的代碼如下:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup(“java:comp/env”);
DataSource ds = (DataSource) envCtx.lookup(“jdbc/TestConnection”);
Connection conn = ds.getConnection();
方法二:使用SQLiteOpenHelper
另一種實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享的方法是使用SQLiteOpenHelper。SQLiteOpenHelper是Android中提供的一個(gè)用于管理SQLite數(shù)據(jù)庫(kù)連接的類(lèi)。以下是使用SQLiteOpenHelper實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享的步驟:
1、創(chuàng)建SQLiteOpenHelper類(lèi)
定義一個(gè)自定義的SQLiteOpenHelper類(lèi),實(shí)現(xiàn)“Singleton”模式,確保只有一個(gè)SQLiteOpenHelper實(shí)例。
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = “mydatabase.db”;
private static final int DATABASE_VERSION = 1;
private static DBHelper sInstance;
public static synchronized DBHelper getInstance(Context context) {
if (sInstance == null) {
sInstance = new DBHelper(context.getApplicationContext());
}
return sInstance;
}
private DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// Create table(s)
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Upgrade table(s)
}
}
2、創(chuàng)建SQLiteDatabase實(shí)例
在應(yīng)用程序的主Activity或Application類(lèi)中,創(chuàng)建一個(gè)static的 SQLiteDatabase變量并在之一次使用時(shí)初始化它。這將確保只有一個(gè)SQLiteDatabase實(shí)例與每個(gè)數(shù)據(jù)庫(kù)連接相關(guān)聯(lián)。
public class MyApplication extends Application {
private static SQLiteDatabase sDatabase;
@Override
public void onCreate() {
super.onCreate();
DBHelper dbHelper = DBHelper.getInstance(this);
sDatabase = dbHelper.getWritableDatabase();
}
public static SQLiteDatabase getDatabase() {
return sDatabase;
}
}
3、使用SQLiteDatabase實(shí)例
在應(yīng)用程序的各個(gè)Activity或Service中,可以使用getDatabase()方法獲取SQLiteDatabase實(shí)例。例如:
public class MyActivity extends Activity {
…
private SQLiteDatabase mDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
…
mDatabase = MyApplication.getDatabase();
}
…
}
Android應(yīng)用程序中實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享對(duì)于改善性能、提高資源利用率和強(qiáng)化安全性非常重要。此文介紹了兩種實(shí)現(xiàn)方式,分別使用了Java EE資源層和SQLiteOpenHelper。根據(jù)需要選擇適當(dāng)?shù)姆绞絹?lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享,并根據(jù)應(yīng)用程序的特定需求進(jìn)行調(diào)整。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
Android客戶(hù)端怎么與服務(wù)器數(shù)據(jù)庫(kù)連接?
正規(guī)的做法:
安卓簡(jiǎn)滲檔客戶(hù)端不會(huì)直攔亂接去鏈接服務(wù)器(后臺(tái))數(shù)據(jù)庫(kù)。
后臺(tái)應(yīng)該把這些業(yè)務(wù)封裝好,然后提供接口與客戶(hù)端對(duì)接!結(jié)果用josn格式傳給客戶(hù)喊櫻端,然后安卓客戶(hù)端解析josn即可。
不能與數(shù)據(jù)庫(kù)連接的
Android客戶(hù)端不能直接與服務(wù)器數(shù)據(jù)庫(kù)連接。數(shù)據(jù)庫(kù)是需要非常大的內(nèi)存,安裝之后有好幾G,連接數(shù)據(jù)庫(kù)要有一個(gè)像SQLServer里的webservice,這樣的一個(gè)橋梁來(lái)間接訪問(wèn)。就是在服務(wù)器運(yùn)行一個(gè)服務(wù)端程序,該服務(wù)端程序通過(guò)接收來(lái)自android客戶(hù)端的指令,對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。
客戶(hù)端的http請(qǐng)求可以通過(guò) HttpClient類(lèi)實(shí)現(xiàn),在anddroid 4.0之后,客戶(hù)端的網(wǎng)絡(luò)請(qǐng)求已經(jīng)不被允許在主線程中運(yùn)行,所以還需注意另開(kāi)啟一個(gè)子線程進(jìn)行網(wǎng)絡(luò)請(qǐng)求。
擴(kuò)展資料:
Android安全權(quán)限機(jī)制:
Android默認(rèn)設(shè)置下,所有應(yīng)用都沒(méi)有權(quán)限對(duì)其他應(yīng)用、系統(tǒng)或用戶(hù)進(jìn)行較大影響的操作。這其中包括讀寫(xiě)用戶(hù)隱私數(shù)據(jù)(聯(lián)系人或
電子郵件
),讀寫(xiě)其他應(yīng)用文件,訪問(wèn)網(wǎng)絡(luò)或阻止設(shè)備待機(jī)等。安裝應(yīng)用時(shí),在檢查程序簽名提及的權(quán)限,且經(jīng)過(guò)用戶(hù)確認(rèn)后,軟件包安裝器會(huì)給予應(yīng)用權(quán)限。
下載一款A(yù)ndroid應(yīng)用通常會(huì)要求如下的權(quán)限:撥打、發(fā)送短信或彩信、修改彎局/刪游鬧含除
SD卡
上的內(nèi)容、讀取聯(lián)系人的信息、讀取日程信的息,寫(xiě)入日程數(shù)據(jù)、讀取狀態(tài)或識(shí)別碼、精確的(基于GPS)
地理位置
、模糊的(基于網(wǎng)絡(luò)獲?。┑乩砦恢谩?chuàng)建藍(lán)牙連接、
還有對(duì)互聯(lián)網(wǎng)的完全訪問(wèn)、查看網(wǎng)絡(luò)狀態(tài),查看WiFi狀態(tài)、避免手機(jī)待機(jī)、修改系統(tǒng)全局設(shè)置、讀取同步設(shè)定、開(kāi)機(jī)自啟動(dòng)神笑、重啟其他應(yīng)用、終止運(yùn)行中的應(yīng)用、設(shè)定偏好應(yīng)用、震動(dòng)控制、拍攝圖片等。
參考資料來(lái)源:
百度百科——Android
Android客戶(hù)端不能直接與服務(wù)器數(shù)據(jù)庫(kù)連接。
以sqlserver為例:安裝之后有幾個(gè)G那么大,android程序是跑在手機(jī)上陪游友的,想讓程序直接訪問(wèn)sqlserver,那手機(jī)需要非常大的內(nèi)存。但是可以通過(guò)webservice這樣一個(gè)橋梁來(lái)間接訪問(wèn)SQLServer。
即在服務(wù)器運(yùn)行一個(gè)服務(wù)端程序,該服務(wù)端程序通過(guò)接收來(lái)自android客戶(hù)端的指令,對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。
客戶(hù)端與服務(wù)端直接的數(shù)據(jù)傳輸主要通過(guò)http協(xié)議發(fā)送和接收json數(shù)據(jù)或者xml數(shù)據(jù),服務(wù)端接收到客戶(hù)端的json數(shù)據(jù)之后,進(jìn)行json解析,再按一定的邏輯對(duì)數(shù)據(jù)庫(kù)進(jìn)行增、刪、改、查。
客戶(hù)端的http請(qǐng)求可以通過(guò) HttpClient類(lèi)實(shí)現(xiàn),在anddroid 4.0之后,客戶(hù)端的網(wǎng)絡(luò)請(qǐng)求已經(jīng)不被允許在主線程中運(yùn)行,所以還需注意另開(kāi)啟一個(gè)子線程進(jìn)行網(wǎng)絡(luò)請(qǐng)求。
擴(kuò)展資料:
android客戶(hù)端的特點(diǎn):
1、即拍即發(fā)
手機(jī)拍照一鍵發(fā)送,發(fā)送照片添加旋轉(zhuǎn)功能。 節(jié)約流量:數(shù)據(jù)量更小,最多可節(jié)約80%。 多帳號(hào)支持:同時(shí)添加多個(gè)帳號(hào),保存多個(gè)帳號(hào)信息隨心切換。 多網(wǎng)絡(luò)支持:CMNET、CMWAP、WiFi等各種類(lèi)型接入 支持客戶(hù)端帳號(hào)注冊(cè)。 支持地理定位。 支持繁體中文。
2、數(shù)據(jù)庫(kù)服務(wù)器功能
數(shù)據(jù)庫(kù)服務(wù)器建立在數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)上,具有數(shù)據(jù)庫(kù)系統(tǒng)的特性,且有其獨(dú)特的—面。主要功能如下:數(shù)據(jù)庫(kù)管磨姿理功能,包括系統(tǒng)配置與管理、數(shù)據(jù)存取與更新管理、數(shù)據(jù)完整性管理和數(shù)據(jù)安全性管理。
數(shù)據(jù)庫(kù)的查詢(xún)和操縱功能 ,該功能包括數(shù)據(jù)庫(kù)檢索和修改。
數(shù)據(jù)庫(kù)維護(hù)功能,包括數(shù)據(jù)導(dǎo)入/導(dǎo)出管理,數(shù)據(jù)庫(kù)結(jié)構(gòu)維護(hù)、數(shù)據(jù)恢復(fù)功能和性能監(jiān)測(cè)。
數(shù)據(jù)庫(kù)并行運(yùn)行,由于在同一時(shí)間,訪問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)不止一個(gè),所以數(shù)據(jù)庫(kù)服務(wù)器必須支持并蘆槐行運(yùn)行機(jī)制,處理多個(gè)事件的同時(shí)發(fā)生。
參考資料來(lái)源:
百度百科——Android客戶(hù)端
android客戶(hù)端不能直接與服務(wù)器數(shù)據(jù)庫(kù)連接,拿sqlserver來(lái)說(shuō),安凳和裝之后有幾個(gè)G那么大,android程序是跑在手機(jī)上的,想讓程序直接訪問(wèn)sqlserver,那手機(jī)需要非常大的內(nèi)存。但是可以通過(guò)webservice這樣一個(gè)橋梁來(lái)間接訪問(wèn)SQLServer。
即在服務(wù)器運(yùn)行一個(gè)服務(wù)端程序,該服務(wù)端程序通過(guò)接收來(lái)自android客戶(hù)端的指令,對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。
客戶(hù)端與服務(wù)端直接的數(shù)據(jù)傳輸主要通過(guò)http協(xié)議發(fā)送和接收json數(shù)據(jù)或者xml數(shù)據(jù),服務(wù)端接收到客戶(hù)端的json數(shù)據(jù)之后,進(jìn)行json解析,再按一定的邏輯對(duì)數(shù)據(jù)庫(kù)進(jìn)行增、刪、改、查。
客戶(hù)端的http請(qǐng)求可以通過(guò) HttpClient類(lèi)實(shí)現(xiàn),在anddroid 4.0之后,客戶(hù)端的網(wǎng)絡(luò)請(qǐng)求已經(jīng)不被允許在主線程中運(yùn)行,所以還需注意另開(kāi)啟一個(gè)子線程進(jìn)行網(wǎng)絡(luò)請(qǐng)求。
擴(kuò)展資料:
android客戶(hù)端的特點(diǎn):
即拍即發(fā):手機(jī)拍照一鍵發(fā)送,發(fā)送照片添加旋轉(zhuǎn)功能。 節(jié)約流量:數(shù)據(jù)量更小,最多可節(jié)約80%。 多帳號(hào)支持:同時(shí)添加多個(gè)帳號(hào),保存多個(gè)帳號(hào)信息隨心切換。 多網(wǎng)絡(luò)支持:CMNET、CMWAP、WiFi等各種類(lèi)型接入 支持客戶(hù)端帳號(hào)注冊(cè)。 支持地理定位。 支持繁體中文。
數(shù)據(jù)庫(kù)服務(wù)器功能:
數(shù)據(jù)庫(kù)服務(wù)器建立在數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)上,具有數(shù)據(jù)庫(kù)系統(tǒng)的特性,且有其獨(dú)特的—面。主要功能如下:
數(shù)據(jù)庫(kù)管理功能,包括系統(tǒng)配置與管理、數(shù)據(jù)存取與更新管理、數(shù)據(jù)完整性管理和數(shù)據(jù)安全性管理。
數(shù)據(jù)庫(kù)的查詢(xún)和操縱功能 ,該功能和鉛包括數(shù)據(jù)庫(kù)檢索和修改。
數(shù)據(jù)庫(kù)維護(hù)功能,包括數(shù)據(jù)導(dǎo)入/導(dǎo)出管理,數(shù)據(jù)庫(kù)結(jié)構(gòu)維護(hù)、數(shù)據(jù)恢復(fù)功能和性能喚粗好監(jiān)測(cè)。
數(shù)據(jù)庫(kù)并行運(yùn)行,由于在同一時(shí)間,訪問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)不止一個(gè),所以數(shù)據(jù)庫(kù)服務(wù)器必須支持并行運(yùn)行機(jī)制,處理多個(gè)事件的同時(shí)發(fā)生。
參考資料來(lái)源:
百度百科-android客戶(hù)端
android客戶(hù)端不能直接與服務(wù)器數(shù)據(jù)庫(kù)連接,拿sqlserver來(lái)說(shuō),安裝之后有幾個(gè)拿拆G那么大,android程序是跑在手機(jī)上的,想讓程序直接訪問(wèn)sqlserver,那手機(jī)需要非常大的內(nèi)存。但是可以通過(guò)webservice這樣一個(gè)橋梁來(lái)間接訪問(wèn)SQLServer。
即在服務(wù)器運(yùn)行一個(gè)服務(wù)端程序,該服務(wù)端程序通過(guò)接收來(lái)自android客戶(hù)端的指令,對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作??蛻?hù)端核敏清與服務(wù)端直接的數(shù)據(jù)傳輸主要通過(guò)http協(xié)議發(fā)送和接收json數(shù)據(jù)或者xml數(shù)據(jù),服務(wù)端接收到客戶(hù)端的json數(shù)據(jù)之后,進(jìn)行json解析,再按一定的邏輯對(duì)數(shù)據(jù)庫(kù)進(jìn)行增、刪、改、查??蛻?hù)端的http請(qǐng)求可以通過(guò) HttpClient類(lèi)實(shí)現(xiàn),在anddroid 4.0之后,客戶(hù)端的網(wǎng)絡(luò)請(qǐng)求已經(jīng)不被允許在主線程中運(yùn)行,所以題主還改前需注意另開(kāi)啟一個(gè)子線程進(jìn)行網(wǎng)絡(luò)請(qǐng)求。
android連接數(shù)據(jù)庫(kù)問(wèn)題
能,請(qǐng)問(wèn)一下,安卓存放聯(lián)系人數(shù)據(jù)文件夾是那一個(gè)?
Java連接數(shù)據(jù)庫(kù)代碼
1、Oracle8/8i/9i數(shù)據(jù)庫(kù)(thin模式)
Class.forName(“oracle.jdbc.driver.OracleDriver”).newInstance();
String url=”jdbc:oracle:thin:@localhost:1521:orcl”;
//orcl為數(shù)據(jù)庫(kù)的SID
String user=”test”;
String password=”test”;
Connection conn= DriverManager.getConnection(url,user,password);
2、DB2數(shù)據(jù)庫(kù)
Class.forName(“com.ibm.db2.jdbc.app.DB2Driver “).newInstance();
String url=”jdbc:db2://localhost:5000/晌老sample”;
//sample為你的數(shù)據(jù)庫(kù)名
String user=”admin”;
String password=””;
Connection conn= DriverManager.getConnection(url,user,password);
3、Sql Server7.0/2023數(shù)據(jù)庫(kù)
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance();
String url=”jdbc:microsoft:
//mydb為數(shù)據(jù)庫(kù)
String user=”sa”;
String password=””;
Connection conn= DriverManager.getConnection(url,user,password);
4、Sybase數(shù)據(jù)庫(kù)
Class.forName(“com.sybase.jdbc.SybDriver”).newInstance();
String url =” jdbc:sybase:Tds:localhost:5007/myDB”;
//myDB為你的數(shù)據(jù)庫(kù)名
Properties sysProps = System.getProperties();
SysProps.put(“user”,”userid”);
SysProps.put(“password”,”user_password”);
Connection conn= DriverManager.getConnection(url, SysProps);
5、Informix數(shù)據(jù)庫(kù)
Class.forName(“com.informix.jdbc.IfxDriver”).newInstance();
String url =
“jdbc:informix-
user=testuser;password=testpassword”;
/慶羨/myDB為數(shù)據(jù)庫(kù)名
Connection conn= DriverManager.getConnection(url);
6、MySQL數(shù)據(jù)庫(kù)
Class.forName(“org.gjt.mm.mysql.Driver”).newInstance();
String url =”jdbc:
//myDB為數(shù)據(jù)庫(kù)名
Connection conn= DriverManager.getConnection(url);
7、PostgreSQL數(shù)據(jù)譽(yù)謹(jǐn)拍庫(kù)
Class.forName(“org.postgresql.Driver”).newInstance();
String url =”jdbc:
//myDB為數(shù)據(jù)庫(kù)名
String user=”myuser”;
String password=”mypassword”;
Connection conn= DriverManager.getConnection(url,user,password);
關(guān)于android 兩個(gè)app共享數(shù)據(jù)庫(kù)連接的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)-老牌IDC、云計(jì)算及IT信息化服務(wù)領(lǐng)域的服務(wù)供應(yīng)商,業(yè)務(wù)涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務(wù)、云計(jì)算服務(wù)、IT信息化、AI算力租賃平臺(tái)(智算云),軟件開(kāi)發(fā),網(wǎng)站建設(shè),咨詢(xún)熱線:028-86922220
網(wǎng)站題目:Android應(yīng)用實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享(android兩個(gè)app共享數(shù)據(jù)庫(kù)連接)
本文URL:http://www.fisionsoft.com.cn/article/coicgcd.html


咨詢(xún)
建站咨詢(xún)
