Android通過Webservice操作sqlserver數(shù)據(jù)庫實(shí)例代碼
首頁在AndroidManifest.xml中添加訪問數(shù)據(jù)庫權(quán)限
<uses-sdk android:minSdkVersion="7" /> <uses-permission android:name="android.permission.INTERNET" />
在src中新建一個連接webservice的類,名字隨意,這里叫做“HttpConnSoap”。基本上這個類是固定的,要改的大多數(shù)就是webservice端口地址,具體代碼如下:
package com.example.hospital;//名字要改成自己的包名 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import android.util.Xml; public class HttpConnSoap { public ArrayList<String> GetWebServre(String methodName,ArrayList<String> Parameters,ArrayList<String>ParValues) { ArrayList<String> Values=new ArrayList<String>(); String ServerUrl="http://10.0.2.2:8093/Service1.asmx";//網(wǎng)友要改的大多數(shù)就是這里。 //String soapAction="http://tempuri.org/LongUserId1"; String soapAction="http://tempuri.org/"+methodName; String data=""; String soap = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" +"<soap:Body />"; String tps,vps,ts; String mreakString=""; mreakString="<"+methodName+" xmlns=\"http://tempuri.org/\">"; for ( int i = 0; i < Parameters.size(); i++) { tps=Parameters.get(i).toString(); //設(shè)置該方法的參數(shù)為.net webService中的參數(shù)名稱 vps=ParValues.get(i).toString(); ts="<"+tps+">"+vps+"</"+tps+">"; mreakString=mreakString+ts; } mreakString=mreakString+"</"+methodName+">"; /* +"<HelloWorld xmlns=\"http://tempuri.org/\">" +"<x>string11661</x>" +"<SF1>string111</SF1>" + "</HelloWorld>" */ String soap2="</soap:Envelope>"; String requestData=soap+mreakString+soap2; System.out.println(requestData); try{ URL url =new URL(ServerUrl); HttpURLConnection con=(HttpURLConnection)url.openConnection(); byte[] bytes=requestData.getBytes("utf-8"); con.setDoInput(true); con.setDoOutput(true); con.setUseCaches(false); con.setConnectTimeout(8000);// 設(shè)置超時時間 con.setRequestMethod("POST"); con.setRequestProperty("Content-Type", "text/xml;charset=utf-8"); con.setRequestProperty("SOAPAction",soapAction); con.setRequestProperty("Content-Length",""+bytes.length); OutputStream outStream=con.getOutputStream(); outStream.write(bytes); outStream.flush(); outStream.close(); InputStream inStream=con.getInputStream(); //data=parser(inStream); //System.out.print("11"); Values= inputStreamtovaluelist(inStream,methodName); //System.out.println(Values.size()); return Values; } catch(Exception e) { System.out.print("2221"); return null; } } public ArrayList<String> inputStreamtovaluelist (InputStream in,String MonthsName) throws IOException { StringBuffer out = new StringBuffer(); String s1=""; byte[] b = new byte[4096]; ArrayList<String> Values=new ArrayList<String>(); Values.clear(); for (int n; (n = in.read(b)) != -1;) { s1=new String(b, 0, n); out.append(s1); } System.out.println(out); String[] s13=s1.split("><"); String ifString=MonthsName+"Result"; String TS=""; String vs=""; Boolean getValueBoolean=false; for(int i=0;i<s13.length;i++){ TS=s13[i]; System.out.println(TS); int j,k,l; j=TS.indexOf(ifString); k=TS.lastIndexOf(ifString); if (j>=0) { System.out.println(j); if (getValueBoolean==false) { getValueBoolean=true; } else { } if ((j>=0)&&(k>j)) { System.out.println("FFF"+TS.lastIndexOf("/"+ifString)); //System.out.println(TS); l=ifString.length()+1; vs=TS.substring(j+l,k-2); //System.out.println("fff"+vs); Values.add(vs); System.out.println("退出"+vs); getValueBoolean=false; return Values; } } if (TS.lastIndexOf("/"+ifString)>=0) { getValueBoolean=false; return Values; } if ((getValueBoolean)&&(TS.lastIndexOf("/"+ifString)<0)&&(j<0)) { k=TS.length(); //System.out.println(TS); vs=TS.substring(7,k-8); //System.out.println("f"+vs); Values.add(vs); } } return Values; } }
需要新建一個數(shù)據(jù)庫訪問類,通過HttpConnSoap這個類和底層數(shù)據(jù)庫進(jìn)行通信,操作。這里新建的方法要和你新建webservice時一直,我的webservice是用vs2010,.net 3.5框架搭建的。這里列舉兩個方法,寫法大概就是這樣的,網(wǎng)友寫的時候要根據(jù)自己的需求來寫就好了。
public class DBUtil { static boolean feeflag=false; ArrayList<String> arrayList=new ArrayList<String>(); ArrayList<String> brrayList=new ArrayList<String>(); ArrayList<String> crrayList=new ArrayList<String>(); HttpConnSoap Soaptest=new HttpConnSoap(); public static Connection getConnection() { Connection con=null; try { System.out.println("111"); Class.forName("org.gjt.mm.mysql.Driver"); System.out.println("222"); con=DriverManager.getConnection("jdbc:mysql://192.168.0.100:3306/test?useUnicode=true&characterEncoding=UTF-8","root","123456"); System.out.println("333"); } catch(Exception e) { System.out.println("444"); e.printStackTrace(); } return con; } //查詢學(xué)生信息 public String[] selectStu(String StuNO) { String ss[]=new String[8]; String result=null; arrayList.clear(); brrayList.clear(); crrayList.clear(); arrayList.add("StuNO"); brrayList.add(StuNO); crrayList=Soaptest.GetWebServre("selectStu", arrayList, brrayList); ss[0]=crrayList.get(0); ss[1]=crrayList.get(1); ss[2]=crrayList.get(2); ss[3]=crrayList.get(3); ss[4]=crrayList.get(4); ss[5]=crrayList.get(5); ss[6]=crrayList.get(6); ss[7]=crrayList.get(7); return ss; } public List<HashMap<String, String>> selectStuAll() { List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>(); arrayList.clear(); brrayList.clear(); crrayList.clear(); crrayList = Soaptest.GetWebServre("selectStuAll", arrayList, brrayList); /*HashMap<String, String> tempHash = new HashMap<String, String>(); tempHash.put("S_Name", "姓名"); tempHash.put("S_Age", "年齡"); tempHash.put("S_Sex", "性別"); list.add(tempHash);*/ for (int j = 0; j < crrayList.size(); j += 3) { HashMap<String, String> hashMap = new HashMap<String, String>(); hashMap.put("S_Name", crrayList.get(j)); hashMap.put("S_Age", crrayList.get(j + 1)); hashMap.put("S_Sex", crrayList.get(j + 2)); list.add(hashMap); } return list; } }
下面就是Android程序中調(diào)用了,這里用listview顯示數(shù)據(jù)。
private ListView listView; private DBUtil dbUtil; private SimpleAdapter adapter; private void setListView() { List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>(); list = dbUtil.selectStuAll(); adapter = new SimpleAdapter( DayList.this, list, R.layout.adapter, new String[] { "S_Name", "S_Age", "S_Sex" }, new int[] { R.id.textView1, R.id.textView2, R.id.textView3 }); listView.setAdapter(adapter); }
Android通過Webservice操作sqlserver數(shù)據(jù)庫的相關(guān)知識,就給大家介紹這么多,后續(xù)還會給大家介紹相關(guān)知識,希望大家持續(xù)關(guān)注本站,謝謝。
- 在Android中訪問WebService接口的方法
- Android開發(fā)調(diào)用WebService的方法示例
- Android 中利用 ksoap2 調(diào)用 WebService的示例代碼
- Android ksoap調(diào)用webservice批量上傳多張圖片詳解
- Android 通過webservice上傳多張圖片到指定服務(wù)器詳解
- Android通過ksoap2傳遞復(fù)雜數(shù)據(jù)類型及CXF發(fā)布的webservice詳細(xì)介紹
- 在Android中調(diào)用WebService實(shí)例
- android調(diào)用WebService實(shí)例分析
- android中soap協(xié)議使用(ksoap調(diào)用webservice)
- android調(diào)用webservice接口獲取信息
相關(guān)文章
android 通知Notification詳解及實(shí)例代碼
這篇文章主要介紹了android 通知Notification詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-12-12Java實(shí)現(xiàn)Andriod帶看括弧的計算器代碼
這篇文章主要介紹了Java實(shí)現(xiàn)Andriod帶看括弧的計算器代碼的相關(guān)資料,需要的朋友可以參考下2016-03-03詳解Kotlin Android開發(fā)中的環(huán)境配置
這篇文章主要介紹了詳解Kotlin Android開發(fā)中的環(huán)境配置的相關(guān)資料,需要的朋友可以參考下2017-06-06Android中關(guān)于Binder常見面試問題小結(jié)
這篇文章主要介紹了Android中關(guān)于Binder幾個面試問題,binder是一種進(jìn)程間通訊的機(jī)制,進(jìn)程間通訊需要了解用戶空間和內(nèi)核空間,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06Android實(shí)現(xiàn)客戶端語音動彈界面實(shí)例代碼
這篇文章主要介紹了Android實(shí)現(xiàn)客戶端語音動彈界面實(shí)例代碼,文章只給大家介紹了控件布局的方法,需要的朋友可以參考下2017-11-11android webview獲取html代碼和根據(jù)id獲取value實(shí)例
這篇文章主要介紹了android webview獲取html代碼和根據(jù)id獲取value實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03實(shí)例詳解Android自定義ProgressDialog進(jìn)度條對話框的實(shí)現(xiàn)
這篇文章主要介紹了實(shí)例詳解Android自定義ProgressDialog進(jìn)度條對話框的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2016-01-01