文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android通过Webservice操作sqlserver数据库实例代码

2022-06-06 09:11

关注

首页在AndroidManifest.xml中添加访问数据库权限


<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET" />

在src中新建一个连接webservice的类,名字随意,这里叫做“HttpConnSoap”。基本上这个类是固定的,要改的大多数就是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";//网友要改的大多数就是这里。
//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();
//设置该方法的参数为.net webService中的参数名称
vps=ParValues.get(i).toString(); 
ts="<"+tps+">"+vps+"</"+tps+">";
mreakString=mreakString+ts;
}
mreakString=mreakString+"</"+methodName+">";

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);// 设置超时时间
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; 
}
}

需要新建一个数据库访问类,通过HttpConnSoap这个类和底层数据库进行通信,操作。这里新建的方法要和你新建webservice时一直,我的webservice是用vs2010,.net 3.5框架搭建的。这里列举两个方法,写法大概就是这样的,网友写的时候要根据自己的需求来写就好了。


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;
}
//查询学生信息
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);

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程序中调用了,这里用listview显示数据。


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数据库的相关知识,就给大家介绍这么多,后续还会给大家介绍相关知识,希望大家持续关注本站,谢谢。

您可能感兴趣的文章:在Android中访问WebService接口的方法Android开发调用WebService的方法示例Android 中利用 ksoap2 调用 WebService的示例代码Android ksoap调用webservice批量上传多张图片详解Android 通过webservice上传多张图片到指定服务器详解Android通过ksoap2传递复杂数据类型及CXF发布的webservice详细介绍在Android中调用WebService实例android调用WebService实例分析android中soap协议使用(ksoap调用webservice)android调用webservice接口获取信息


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯