軟件開發(fā)就是根據(jù)用戶要求建造出軟件系統(tǒng)或者系統(tǒng)中的軟件部分的過程。

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了利辛免費建站歡迎大家使用!
一般是用某種程序設計語言來實現(xiàn)的軟件開發(fā)的,像Java、Python、2C和C++等都是軟件開發(fā)的需要的編程語言。
看到那么多編程語言,同學又就開始犯嘀咕,這么多,到底學什么?
今天聽人說Java不錯,想學;
明天聽人說Python前景廣,想學;
為什么會迷茫,還不是因為你不夠了解他們。
所以,今天信盈達小編先來給大家普及一下Java、C/C++、PHP、Python到底分別是用來開發(fā)什么的?
用任何編程語言來開發(fā)程序,都是為了讓計算機干活,比如編寫一篇文章,下載一首MP3等,而計算機干活的CPU只認識機器的指令。
所以,盡管不同的編程語言差異極大,最后都得“翻譯”成CPU可以執(zhí)行的機器指令。理論上任何語言干任何事情幾乎都可以, 但是主要干什么那就不一樣了。
Java
java常常跟”企業(yè)”聯(lián)系在一起,因為具備一些很好的語言特性, 以及豐富的框架,在企業(yè)應用中最被青睞,你總可以聽到關于J2EE, JSP, Hibernate之類的東西的討論。
同時, java在手機領域也有一席之地,在普遍智能化之前,很多手機就是以支持java應用作為賣點的,而智能手機爆發(fā)之后,java手機主場變成了android, 作為安卓的標準編程語言而存。
總結:Java主要應用在網(wǎng)頁, 企業(yè)級開發(fā),普通應用軟,游戲后臺。
C/C++
C/C++理論上說可以做任何開發(fā),只要有合適的硬件驅動和API,特點是效率高,基本上是編譯語言里面效率最高的。除非你的系統(tǒng)中連C/C++編譯器都不具備。某些系統(tǒng)當中C++編譯器是不具備的,但是C一般都具備。
目前而言,C語言主要用來開發(fā)底層模塊(比如驅動,解碼器,算法實現(xiàn)),服務應用(比如web服務器)和嵌入式應用(比如微波爐里的程序。C++也可以做這些,不過由于C++的復雜性和標準問題,人們還是更愿意使用C來做。C++更適合比較復雜但又特別需要高效率的設施,比如大型游戲,一些基礎庫, 大型桌面應用。
總結:C 主要應用在系統(tǒng)底層,驅動,嵌入式開發(fā)。C++主要應用在游戲開發(fā),大規(guī)模,高性能,分布式要求的程序開發(fā)。
Python
Python由于具有豐富和強大的庫,它又叫做作膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結在一起。
常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴展類庫。
Python是做服務器開發(fā)與物聯(lián)網(wǎng)開發(fā)。信息安全,大數(shù)據(jù)處理,數(shù)據(jù)可視化機器學習,物聯(lián)網(wǎng)開發(fā),各大軟件的api,桌面應用,都需要python。
總結:Python主要應用在動態(tài)解釋型,開發(fā)效率高,開源,靈活,入門門檻低。
首先要有一個可以連接的數(shù)據(jù)庫,其次使用下面這個文件(流行的三種數(shù)據(jù)庫連接);另外的Main函數(shù)和類自己寫吧.sqlStr用恰當?shù)腟QL語句代替.
package db;
import java.sql.*;
//import com.mysql.jdbc.Driver;//導入MYSQL數(shù)據(jù)庫驅動
//import oracle.jdbc.driver.OracleDriver;//ORACLE的
//MSSQL的其實不用import進來也行的.但是在編譯時,必須要把這些"必需的庫"加進來.
/*下面是MYSQL的連接設置*/
/**driver name would be loaded {@link #getConnection()}*/
private final String driverName = "com.mysql.jdbc.Driver"; //要加載的驅動名稱
/**url to connect {@link #driverName}*/
private String url = "jdbc:mysql://localhost:3306/dabaseName";//連接的URL
private String user = "root";//數(shù)據(jù)庫用戶名
private String password = "123456";//數(shù)據(jù)庫登陸密碼
/*下面是ORACLE thin連接設置*/
private String driverName = "oracle.jdbc.driver.OracleDriver"; //driver name
private String url = "jdbc:oracle:thin:@//192.168.18.16:1521/databaseName";
/*對于Oracle 推薦這樣寫:jdbc:oracle:thin://192.168.18.16:1521:databaseName
private String user = "username";
private String password = "userpassword";
/*下面是SQLserver連接設置*/
private String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String url = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=test";
private String user = "aaa";
private String password = "123";
/*下面是通用的*/
private Connection conn = null;//
private Statement stmt = null;//
private PreparedStatement pst = null;//
private ResultSet rs = null;//
/*加載驅動*/
try{
Class.forName(driverName);//.newInstance();
com = DriverManager.getConnection(url,user,password);//獲取連接;
stmt = conn.createStatement();//
rs = stmt.executeQuery(sqlStr);//執(zhí)行一次查詢sqlStr = "select * from tablename";
stmt.executeUpdate(sqlStr);//添加,刪除,修改sqlStr = "delete from table ";
stmt.close();
conn.close();
}
catch (Exception e){
e.printStackTrace();//打印異常到后臺
}
/*****以下是一個完全的實例********************/
/**
*@(#) DbManager.java 1.00 2007/07/26
*
*Copyright (c) 2007
*
*this class is.....
*/
package query;
import java.sql.*;
//import oracle.jdbc.driver.OracleDriver;
/**
* DB Manager for Oracle
*
*@author lijm
*@version $id:2007
*@bug bug description
*@concurrency concurrency des
*@copyright 2007 des
*@example des
*/
public class DbManager
{
/**driver name would be loaded {@link #getConnection()}*/
private final String driverName = "com.mysql.jdbc.Driver"; //driver name
/**url to connect {@link #driverName}*/
private String url = "jdbc:mysql://localhost:3306/ljm2";
private String user = "root";//"together";
private String password = "123456";//"wowinmylife2005";
private Connection conn = null;
private Statement stmt = null;
private PreparedStatement pst = null;
private ResultSet rs = null;
/*************************************
**構造函數(shù),創(chuàng)建連接和語句
*@see #getConnection()
*@throws Exception if getConnection failed
*******************************/
public DbManager() throws SQLException
{
try {
conn = getConnection();
}
catch (SQLException e)
{
System.out.println("創(chuàng)建數(shù)據(jù)庫連接失敗!");
throw e;
}
try {
stmt = conn.createStatement();
}
catch (SQLException e){
System.out.println("創(chuàng)建語句失敗");
throw e;
}
}
/****************************
**連接數(shù)據(jù)庫.
*p detail remark 1{@link #DbManager()}/p
*p detail remark 2/p
*****************************/
public Connection getConnection()
throws SQLException/*,ClassNotFoundException,java.lang.InstantiationException,java.lang.IllegalAccessException*/
{
try
{
Class.forName(driverName);//.newInstance();
return DriverManager.getConnection(url,user,password);
}
catch (ClassNotFoundException e)
{
System.out.println("加載驅動類 : " +driverName+ " 失敗!");
e.printStackTrace();
throw new SQLException("沒有找到驅動類");
}
catch (SQLException e){
System.out.println("連接數(shù)據(jù)庫失敗");
e.printStackTrace();
throw e;
}/*
catch (java.lang.InstantiationException e){
System.out.println("實例化驅動程序失敗");
throw new SQLException("實例化驅動程序失敗");
}
catch (java.lang.IllegalAccessException e){
System.out.println("實例化驅動程序失敗");
throw new SQLException("實例化驅動程序失敗");
}*/
catch (Exception e){
throw new SQLException("其它異常");
}
//return conn;
}
/**********************************
**執(zhí)行數(shù)據(jù)庫查詢
*@param sqlStr sql statement
*@return 查詢結果集
*********************************/
public ResultSet execQuery(String sqlStr) throws SQLException
{
try
{
rs = stmt.executeQuery(sqlStr);
}
catch (SQLException e)
{
System.out.println("查詢數(shù)據(jù)失敗");
e.printStackTrace();
throw e;
}
return rs;
}
/*************************
**執(zhí)行數(shù)據(jù)庫更新(插入記錄,更新記錄,刪除記錄
*@param sqlStr
**********************************/
public void execUpdate(String sqlStr) throws SQLException
{ boolean update = true;
try
{
stmt.executeUpdate(sqlStr);
//return true;
}
catch (SQLException e)
{ System.out.println("更新失敗");
e.printStackTrace();
update = false;
throw e;
}
}
/****************************
**關閉連接;釋放資源(手動).
*在程序中要記得連接的關閉,不然的話會引起很多的SQL異常
***************/
public void close()
{
try {
if (stmt != null){
stmt.close();
stmt = null;
}
conn.close();
conn = null;
}
catch (SQLException e){
System.out.println("關閉數(shù)據(jù)庫連接失敗!");
e.printStackTrace();
}
}
/**********************
**測試本文件(DbManager.java)
***************/
public static void main(String [] args){
try{
DbManager dbm = new DbManager();
ResultSet rs = dbm.execQuery("select * from req_bill_operate_table where dt_operatetime like ''");
if(rs.next()){
System.out.println("rs in not null in main");
}
dbm.close();
System.out.println("ather main try");
}
catch (SQLException e){
System.out.println("e in main :" +e.getMessage()+ "\t cause:" +e.getCause());
//e.printStackTrace();
}
//dbm.execUpdate("create table ljmmm( id number)");
}
}
或者你也可以試試以下的程序
準備工作:
1、jar包放在C:\Program Files\Java\jdk1.5.0_09\jre\lib\ext中
2、在eclipse中:項目名-屬性-java構建路徑-添加外部jar包
/*
*本示例代碼詳細說明了如何在Java中利用JDBC直接連接到SQL Server 2000數(shù)據(jù)庫,包括使用SQl 2000驅動(三個jar包),
*以及使用SQL 2005包(一個包)的兩種情況
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.*;
public class DBManagerSQL {
ResultSet rs;
String strurl="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=testDB";//2、SQL 2000 三個包時
//String strurl="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=testDB";//1、驅動為SQL 2005時,sqljdbc.jar
public DBManagerSQL(){}
public ResultSet getResult(String sql)
{
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//2、SQL 2000三個包時
//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //2、驅動為SQL 2005時,sqljdbc.jar
Connection con=DriverManager.getConnection(strurl,"sa","sa");
executeUpdate、execute
con.createStatement(int resultSetType,int resultSetConcurrency)
resultSetType定義結果集類型:TYPE_FORWARD_ONLY,結果集的游標只能向前移
TYPE_SCROLL_INSENSTIVE,結果集游標可以前后移動,結果集不反映表中數(shù)據(jù)變化
TYPE_SCROLL_SENSITIVE,結果集游標可以前后移動,結果集立即反映表中數(shù)據(jù)變化
resultSetConcurrency定義結果集的更新方式:
CONCUR_UPDATABLE,可以進行更新操作
CONCUR_READ_ONLY,不可以進行更新操作
示例:反向遍歷數(shù)據(jù)表
st=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=st.executeQuery(sql);
rs.afterLast;//將游標指向結果集結束
while(rs.previous())
{
System.out.println(rs.getString(1));//此處為第一列!也可以使用列名
}
Statement stmt=con.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//ResultSet包含符合SQL語句中條件的所有行,等價于一張表,其中有查詢所返回的列標題及相應的值。通過get方法可以訪問這些行中的數(shù)據(jù)
//ResultSet維持一個指向當前行的指針,最初指向第一行之前。通過ResultSet.next方法移動到下一行,返回值True/false
ResultSet rs=stmt.executeQuery(sql);
return rs;
}
catch(Exception e)
{
System.out.println("Exception:"+e.toString());
return null;
}
}
public boolean executeSql(String sql)
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn=DriverManager.getConnection(strurl,"sa","sa");
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
conn.commit();
return true;
}
catch(Exception e)
{
System.out.println("Exception:"+e.toString());
return false;
}
}
public static void main(String args[])
{
DBManagerSQL db=new DBManagerSQL();
ResultSet rs1=null;
try{
rs1=db.getResult("select * from student");
System.out.println("****");
while(rs1.next())
{
System.out.println(rs1.getString(1));//此處為第一列!也可以使用列名getString("sno")
//getInt()可以將指定字段以Int類型返回,其他類推
}
}
catch(SQLException e)
{
System.out.println("========================"+e.toString());
}
//***********************下為記錄的插入,刪除,更新操作****************************
String sqlstr="insert into student values('200501013','劉玲','女')"; //注意引號
// String sqlstr="delete from student where sname='劉玲'";
//String sqlstr="update student set sex='女'where sname='張三'";
db.executeSql(sqlstr);
//*********************斷開連接**************************
// 一般順序為ResultSet--Statement-- Connection
/*//示例
try{
if(rs!=null)
{rs.close();}
if(stmt!=null)
{stmt.close();}
if(conn!=null!conn.isclosed())
{conn.close();}
}
catch(SQLException e){
e.printStackTrace();
}
*/
try{
if (rs1!=null) rs1.close();
}
catch(SQLException e)
{
//System.out.println("========================"+e.toString());
e.printStackTrace();
}
}
}
實在不行下面一種也行
import java.sql.*; //導入sql庫
public class DBStu { //建一個類,類名為DBStu.
public boolean insert(String name,String sex,int num){//建一個公共的方法有boolean的返回值
Connection con = null; //初始化連接對象
PreparedStatement pstmt = null; //初始化執(zhí)行語句對象
boolean list = false; //新建boolean變量為false;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加載連接數(shù)據(jù)庫存的驅動
} catch (ClassNotFoundException ex) { //捕獲異常
}
try {
con = DriverManager.getConnection("jdbc:odbc:dbName"); //用ODBC方法連接數(shù)據(jù)源,數(shù)據(jù)源名為dbName.
String sql = "insert into student values(?,?,?)"; //創(chuàng)建sql語句,語句意思為插入數(shù)據(jù).
pstmt = con.prepareStatement(sql); //執(zhí)行該語句.
pstmt.setString(1,name); //在語句里添加值,里面的1對應的第一個問號,由name得到的值填入
pstmt.setString(2,sex); //與上同意
pstmt.setInt(3,num); //與上同意.
int count = pstmt.executeUpdate(); //用一個整型變量來接愛更新了幾條語句.
list = (count0)?true:false; //用三元運算符判斷如果更新至少一條語句,list就為true.
} catch (SQLException ex1) { //捕獲異常
list = false; //如果有異常則為假
}finally{
try {
pstmt.close(); //關閉執(zhí)行語句
con.close(); //關閉連接語句
} catch (SQLException ex2) { //捕獲異常
}
}
return list; //返回它的值,如果為真,則這個方法插入數(shù)據(jù)成功了.
}
}
下面是理論
..........完全是代碼啊
第一步:在構造函數(shù)里面使用Class.forName加載驅動
第二步:在構造函數(shù)中使用DriverManager.getConnection(地址,用戶,密碼)得到鏈接。
第三步:得到預編譯對象PreparedStatement ps = conn.createPreparedStatement ();
第四步:得到結果集ResuletSet rs = ps.executeQuely(SQL語句)
或者是添加,修改,刪除 boolean b = ps.executeUpdata(SQL語句)
建議你開一下jdbc的書籍,你會明白為什么這么做的,理解了問題就簡單了,好多的事情IDE可以做,知道原理就可以了
首先要知道JAVA里面3個操作數(shù)據(jù)庫的接口
CONNECTION STATEMENT REAULTSET
然后用Class.forName加載驅動
用Drivermanager.getConnection();建立連接
然后用CONNECTION的對象 createStatement();
然后就可以用得到的Statement對象去執(zhí)行SQL語句了
服務器系統(tǒng)采用三元結構,即數(shù)據(jù)庫服務器、應用服務器和Web服務器。
(1)數(shù)據(jù)庫服務器采用Java+SQLserver模式,用于承載全國實物地質(zhì)資料及相關文檔數(shù)據(jù),包括大容量存儲系統(tǒng)和相應的數(shù)據(jù)庫管理軟件,授權用戶可通過網(wǎng)絡訪問系統(tǒng)展開業(yè)務工作。
(2)應用服務器用于信息系統(tǒng)中各種應用訪問的處理、數(shù)據(jù)查詢、數(shù)據(jù)入庫、數(shù)據(jù)下載、數(shù)據(jù)導出、系統(tǒng)管理等。
(3)Web服務器采用Tomcat模式,用于管理普通用戶通過互聯(lián)網(wǎng)絡對系統(tǒng)的訪問,用戶與服務器之間采用B/S方式構建。用戶通過互聯(lián)網(wǎng)絡訪問系統(tǒng)時,由Web服務器處理用戶請求,轉發(fā)到應用服務器進行處理,并返回處理結果。
Web服務器上的JSP、Servlet主要提供頁面顯示、獲取用戶輸入和業(yè)務流程控制功能。本層對業(yè)務邏輯層的訪問需要通過對封裝了業(yè)務邏輯的EJB組件的調(diào)用來實現(xiàn)。雖然JSP、Servlet技術本身可以直接對數(shù)據(jù)層進行訪問,但是為了從架構上保證系統(tǒng)具有較高的安全性、可擴展性、可維護性等,方案不采用這種直接訪問,而采用JSP、Servlet調(diào)用封裝有業(yè)務邏輯的EJB組件的形式予以實現(xiàn)。
應用程序通過Java提供頁面顯示、獲取用戶輸入和業(yè)務流程控制。本模式對業(yè)務邏輯層的訪問通過JavaBean及SOAP協(xié)議或XML技術調(diào)用封裝業(yè)務邏輯的WebService構件來完成數(shù)據(jù)庫的訪問。運用WebService技術可以使得該體系結構具有更高的靈活性和可擴展性。
其次,對文檔對象模型的訪問也是對通過封裝了文檔對象的WebService構件的調(diào)用來實現(xiàn)。該WebService構件對文件對象的訪問通過文檔對象的唯一標識GUID進行,文件數(shù)據(jù)的傳入、傳出通過封裝在XML中的文件流進行,避免了對文件系統(tǒng)的直接訪問。同時對文件對象的加解密策略在文檔對象模型內(nèi)部定義,可以靈活改變或擴展而不會影響外部通過該模型對文件對象的訪問。監(jiān)管平臺技術結構層次如圖3.10所示。
圖3.10 系統(tǒng)總體結構層次
?php
// ? : 三元操作符 如果$_POST['page']已賦值(Request URL中包含page=xxx),將$_POST['page'])的值轉換成int賦值給page,如果未賦值則$page=1,這種情況很常見,沒有翻頁之前可以不包含$page參數(shù)
$page = isset($_POST['page']) ? intval($_POST['page']) : 1;
//同上,應該是每頁的記錄數(shù)量
$rows = isset($_POST['rows']) ? intval($_POST['rows']) : 10;
//計算當前頁所處位置,用于limit查詢,這個是游標的起始位置,MySQL中 limit 0,10 的意思就是從第0條開始,選擇10條數(shù)據(jù),相當于sqlserver中的 select top 10 * from xxx
$offset = ($page-1)*$rows;
$result = array(); //定義$result數(shù)組
//連接本機MySQL數(shù)據(jù)庫,root,密碼root
$conn = mysql_connect('127.0.0.1','root','root');
//選擇mydb庫
mysql_select_db('mydb',$conn);
//下面三行為獲取記錄總行數(shù),用于計算分頁后的總頁數(shù)
$rs = mysql_query("select count(*) from item");
$row = mysql_fetch_row($rs); //獲取游標
$result["total"] = $row[0]; //獲取count(*)的值
//選擇當前分頁
$rs = mysql_query("select * from item limit $offset,$rows");
$rows = array();
//游標遍歷,獲取數(shù)據(jù),直至mysql_fetch_object返回空值等于false時跳出循環(huán)
while($row = mysql_fetch_object($rs)){
//提取數(shù)據(jù)存入數(shù)組
array_push($rows, $row);
}
//數(shù)組存入更大的數(shù)組
$result["rows"] = $rows;
//json編碼
echo json_encode($result);
?
實現(xiàn)原理很簡單,就是建立一個Page類,里面放當前訪問的頁數(shù)(這個是從客戶瀏覽器傳到后臺的數(shù)據(jù),所以你的分頁需要用它來定位記錄的條目)和每一頁顯示的記錄行數(shù)。然后通過分頁計算就可以得出下列數(shù)據(jù)。
(假定你的頁數(shù)從1開始)
1、總頁數(shù) = 總記錄數(shù)/每頁大小,如果0!=總記錄數(shù)%每頁大小,那么總頁數(shù)再+1
2、當前頁數(shù)(從瀏覽器傳遞的參數(shù)中獲得)
3、表記錄的起始位置=(當前頁數(shù)-1)*每頁大小
4、總記錄數(shù)(select count(*) from [表名] [where [條件]],從數(shù)據(jù)庫中查詢得到)
5、每頁大小,可以固定,也可以從頁面?zhèn)鬟^來
有了這幾個參數(shù)之后,就用sql語句查出對應的記錄就可以了。
mysql數(shù)據(jù)庫用limit 表記錄的起始位置,每頁大小 語句添加到你的查詢語句最后面
sqlserver數(shù)據(jù)庫用top語句和not in 來做
oracle數(shù)據(jù)庫用rownum來做
再給你一段分頁對象代碼,你自己先讀一下
pre t="code" l="java"public class Page {
private long totalCount = 0;// 總記錄數(shù)
private int pageNumber = 1;// 當前頁號,默認顯示第一頁
private int pageSize = 20; // 每頁大小,默認每頁20條
private int totalPage = 0;// 總頁數(shù),默認為0
private int startRow = 0;// 起始記錄行號,默認為從表頭開始
/**
* 分頁計算方法,由setTotalCount調(diào)用
*/
public void pagination() {
// 計算總頁數(shù)
if (this.totalCount % pageSize == 0)
this.totalPage = new Long(this.totalCount / pageSize).intValue();
else
this.totalPage = new Long(this.totalCount / pageSize).intValue() + 1;
// 排除錯誤頁號
if (this.pageNumber 1)
this.pageNumber = 1;
if (this.pageNumber this.totalPage)
this.pageNumber = this.totalPage;
// 計算起始行號
this.startRow = (this.pageNumber - 1) * this.pageSize;
}
public long getTotalCount() {
return totalCount;
}
public void setTotalCount(long totalCount) {
this.totalCount = totalCount;
this.pagination();
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getStartRow() {
return startRow;
}
public void setStartRow(int startRow) {
this.startRow = startRow;
}
}
當前文章:sqlserver三元,sql三元運算符
URL鏈接:http://chinadenli.net/article26/dseijcg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、靜態(tài)網(wǎng)站、企業(yè)建站、App設計、用戶體驗、服務器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)