當前位置:首頁 » 數據倉庫 » webservice資料庫同步
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

webservice資料庫同步

發布時間: 2023-08-17 13:18:38

⑴ java的webservice如何連接本地資料庫.

同求,前輩。我也是現在能寫web service,但是把連接資料庫的類和jar文件添加進去之後就出問題了,好像不能簡單的調用。求前輩幫幫忙,謝謝了。[email protected]

⑵ 關於WebServiceWebService怎麼連接資料庫

我的想法是這樣的:首先建立一個showDatabase.java ,用於連接資料庫,其源文件如下:
package stuTest;
import java.sql.*;
public class showDatabase {
public Connection getConnection()
{
Connection conn;
try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
conn=DriverManager.getConnection("jdbc:","root","a123456");
//conn.setAutoCommit(false);
}
catch(Exception e){throw new RuntimeException(e);}
return conn;
}
public void closeCon(Connection conn)
{
try{
if(conn!=null) conn.close();
}
catch(SQLException e)
{
throw new RuntimeException(e);
}
}
public void rollback(Connection conn)
{
try
{
conn.rollback();
}
catch(SQLException e)
{
throw new RuntimeException(e);
}
}
}
轉載,僅供參考。

⑶ 用Server-u怎樣把數據從外網通過網閘轉到內網

作者:蔡老闆
鏈接:https://www.hu.com/question/26954479/answer/171177491
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

大概有三種方式:
1、使用網閘的映射功能:即在網閘中配置指定ip段的外網機器,只能訪問內網指定ip、埠的機器所提供的指定服務。
評價:此種方式較為方便,但不是最安全的。
2、文件同步功能:此種方式需要一台外網伺服器和一台內網伺服器,在內外網伺服器上分別部署webservice服務程序,並在內外網機器上分別建立共享文件夾,供網閘進行文件的同步(從內網到外網,從外網到內網)。
實現思路大致是:
(1)、外網伺服器部署的webservice程序供外網用戶訪問,一旦接受請求,則將請求生成xml或者其他格式文件,放到外網伺服器的共享請求目錄。
(2)、通過在網閘中配置內外網的共享請求目錄與共享響應目錄,網閘會定時(最低一分鍾)掃描內外網伺服器的指定的若干目錄,看有無新增文件,有則同步過去。
(3)、內網伺服器webservice程序內部定時掃描指定請求目錄,網閘將外網伺服器的請求文件同步到內網伺服器的請求目錄後,內網程序檢測到請求文件則立即觸發調用本地或者內網其他機器的webservice服務,並將結果生成響應文件放到響應目錄。
(4)、網閘檢測響應目錄的新增文件,將文件同步到外網伺服器的響應目錄,外網伺服器程序線程接受到請求後, 一直等待指定時間,掃描響應目錄下有無響應文件產生(請求文件與響應文件採取同名方式,以便區分),讀取到響應文件後,返回給外網用戶調用者。
評價:此種方式雖然較上種方式安全,但網閘掃描頻率最快一分鍾掃描一次的限制便將該種方式kill了(讓客戶等待至少2分鍾是完全不可行的)。
然而對於新的網閘內外網數據交換平台可以支持1s掃描一次,因此對於需要交換圖片、視頻等應用,則可考慮升級舊網閘數據交換系統;此時採取文件同步是比較理想的。
3、資料庫同步方式:
實現思路:
(1)、需要兩台伺服器,內網伺服器與外網伺服器,兩台機器同時部署兩個程序(程序不完全相同),兩台伺服器都要安裝資料庫,並建立相同的表結構(指需要通過網閘同步的表的結構相同,本例中需要響應表和請求表)
(2)、在網閘中配置資料庫同步,需要兩個庫的連接方式,及需要同步那些表;注意,同步的表欄位不可有clob或者blob等類型(網閘不能同步,猜測是大欄位類型不能導出的原因),基本類型最好。
(3)、外網webservice程序接收請求,將請求插入到請求表中,然後線程休眠指定時間後讀取響應表中的響應結果。
(4)、網閘將外網資料庫的請求表中的插入的數據,即時(可能採用觸發器,具體不知,相當於即時)同步到內網資料庫的請求表中。
(5)、對內網請求表預先建立行級觸發器,當請求表每插入一條數據時,即執行觸發器,在觸發器中調用內網的webservice程序。
(6)、可在觸發器中插入結果到響應表中,若是業務邏輯復雜,則可在webservice程序內部將結果插入到響應表中。
(7)、網閘將響應表中數據即時同步到外網伺服器的響應表中。
(8)、(3) 中等待的線程在限定時間內每隔100ms(自己指定)查詢響應表,查詢到等待的結果則返回給客戶。
4、總結:映射方式與資料庫同步方式最為靠譜,但若是對安全性要求非常高,則建議使用資料庫同步方式,否則使用映射方式最為便捷。

⑷ 多個獨立系統數據交互,資料庫事務同步問題

使用API介面或者使用scoket 發送消息,另一方接受消息,如果是WEB的可以使非同步webservice做數據同步的介面。系統1刪除數據D1的時候,調用系統2的一個webservice,告訴他的D1被刪除了,

⑸ 兩個系統所用的資料庫不同,怎麼樣實現數據導入導出

介面都沒有,根本無法數據對接的。
一般介面有4種,
1,通過webservice數據交互對接,這樣數據是實時同步的,且安全;
2,通過中間數據表,這樣數據的同步性稍差;
3,通過寫文件的形式,這種方式現在信息系統基本不用,像那種點菜寶之類的小設備,會使用此方法;
4,一個系統直接操作另一個系統的資料庫,此方法只用來做數據查詢還可以,不建議增刪改操作;

⑹ .net中webservice是同步調用還是非同步調用

WebService
其實非同步調用WebService是不需要在WebService中做任何操作的,只是普通的WebService就可以了,下面是我寫的一個簡單的WebService返回SqlServer2000中NorthWind資料庫中所有員工的信息
[WebMethod]
public DLL.EmployeesDataTable getEmployee()
{
DLL.EmployeesDataTable result = new DLL.EmployeesDataTable();
DLLTableAdapters.EmployeesTableAdapter eta = new WebServiceAsyn.DLLTableAdapters.EmployeesTableAdapter();
eta.FillEmployee(result);
return result;
} 這里我需要聲明一下,返回的 DLL.EmployeesDataTable類型是我用DataSet生成的強類型,或者你可以認為他是DataTable。
如何在Asp.Net里引入WebService呢?首先右鍵單擊解決方案資源管理器中的項目,然後選擇添加Web引用(你也可以單擊網站菜單選擇添加Web引用),在彈出的對話框中填入WebService的地址,並填寫Web引用名後點擊添加引用按鈕就可以了,這時我們就可以在代碼視圖中根據web引用名來對WebService進行調用了,下面是我的CS代碼
//實體化WebService引用
private AsynWebService.Service1 asynSer;
//構造函數初始化WebService引用,並為非同步調用WebService設置好了結果處理函數【方法名Completed】(先這么叫吧,我也不知道怎麼叫)
public _Default()
{
asynSer = new AsynWebService.Service1();
asynSer.HelloWorldCompleted += new AsynWebService.(asynSer_HelloWorldCompleted);
asynSer.getEmployeeCompleted += new AsynWebService.(asynSer_getEmployeeCompleted);
}
protected void Button1_Click(object sender, EventArgs e)
{
//開始非同步調用HelloWorld;
asynSer.HelloWorldAsync();
}

protected void asynSer_HelloWorldCompleted(object sender, AsynWebService.HelloWorldCompletedEventArgs e)
{
this.Label1.Text = e.Result.ToString();
}

protected void asynSer_getEmployeeCompleted(object sender, AsynWebService.getEmployeeCompletedEventArgs e)
{
this.GridView1.DataSource = e.Result;
this.GridView1.DataBind();
}
protected void Button2_Click(object sender, EventArgs e)
{
//開始非同步調用getEmployee
asynSer.getEmployeeAsync();
} 到這里我們後台代碼就寫完了,但是我們還要在ASPX頁面設置一個允許非同步調用的屬性 Async="true"這樣就可以在這個頁面里進行非同步調用了!
同步調用的方法和非同步調用的方法不一樣,非同步調用的方法是WebServic的方法名+Async()作為方法名,同步調用的方法就是WebService的方法名。
其實從原理上看不管是Ajax還是Asp.Net或者Flex它們的非同步調用都是一樣的,下面我們來和Ajax比較一下Ajax中的核心對象--XMLHttpRequest對象一個非常重要的屬性就是onreadystatechange,下面是一個基於Ajax的簡單的用戶名的驗證<script language="javascript" type="text/javascript">
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}

function requestStart()
{
if(document.getElementById("tbx1").value.length <= 4)
{
alert("用戶名的長度要求大於4個字元!");
return false;
}
document.getElementById("sp1").innerText = "Loding";
var url = "default.aspx?userName=" + document.getElementById("tbx1").value;
createXMLHttpRequest();//創建XMLHttpRequest對象
xmlHttp.onreadystatechange = callBack;//為XMLHttpRequest對象指定結果處理函數
xmlHttp.open("GET",url);//打開鏈接
xmlHttp.send(null);//發送請求
}
//結果處理函數
function callBack()
{
if(xmlHttp.readyState == 4)
{
document.getElementById("sp1").innerText = xmlHttp.responseText;
}
}
</script>