Android环境上使用JCFXBL API接口操作数据库

Android环境下使用JCFXBL API接口操作数据库

Android环境下使用JCFXBL API接口操作数据库

 

文档整理:王强

 

http://blog.csdn.net/ex_net/article/details/7833641

作者:张建波 邮箱: 281451020@qq.com 电话:13577062679 欢迎来电交流!

 

 

 

一、数据操作中涉及到的数据接口

Android环境上使用JCFXBL API接口操作数据库

 

发送请求的对象

AndroidFxBLClientAPI FxBL = new AndroidFxBLClientAPI(url);

其中url=”服务器地址”+数据接口。

 

处理返回请求的对象

         FxBLResponse response = new FxBLResponse(res);

 

在相应数据库中新建一张表(如下图)

Android环境上使用JCFXBL API接口操作数据库

测试数据

 Android环境上使用JCFXBL API接口操作数据库

 

二、安卓GUI界面操作

2.1 把数据查询到TextBox等控件内

(1)查询界面

Android环境上使用JCFXBL API接口操作数据库

(2)查询时用的存储过程

ALTER proc [dbo].[ACT_TEST_GET_KHXX]
(
		@KHBH nvarchar(100),	
		@return_msg nvarchar(100)output,
		@return_value int output
)
as begin
		select * from T_AD_TEST where KHBH=@KHBH
		set @return_msg=''
		set @return_value=1
end


(3)UI查询事件挂接

findViewById(R.id.btnOK).setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				//查询用的地址
				String url ="http://169.254.1.30:8088/";
url=url+"GetDbStore.ashx?act=ACT_TEST_GET_KHXX¶ms=1&formId=F0102"
				//绑定到请求中的Handler对象,
				Handler handler = new Handler() {
					public void handleMessage(Message message) {
						switch (message.what) {
						case HttpConnection.DID_START: {
							break;
						}
						case HttpConnection.DID_SUCCEED: {
							doFxBLCallBack((String) message.obj);
							break;
						}
						case HttpConnection.DID_ERROR: {
							break;
						}
						}
					}
				};
				//发送请求的对象
				AndroidFxBLClientAPI FxBL = new AndroidFxBLClientAPI(url);
				//添加与存储过程中对应的参数
				FxBL.AddParam("KHBH", txtBH.getText().toString());
				//绑定Handler对象
				FxBL.BindHandler(handler);
				//发送请求
				FxBL.Request();
			}
//连接成后的处理方法
			private void doFxBLCallBack(String res) {
				//处理返回请求的对象
				FxBLResponse response = new FxBLResponse(res);
				//存放返回的数据
				ArrayList<HashMap<String,String>> list=response.GetArrayList();
				if (list != null) {
					//赋值
					txtKHXM.setText(list.get(0).get("KHMC"));
					txtZJLX.setText(list.get(0).get("ZJLX"));
					txtZJH.setText(list.get(0).get("ZJH"));
					txtLXDH.setText(list.get(0).get("LXDH"));
				}
}
		});


2.2 把数据查询到ListView中

(1)查询界面

Android环境上使用JCFXBL API接口操作数据库

(2)查询用的存储过程

create proc [dbo].[ACT_AD__KHXX]
	(
		@KHBH nvarchar(100),	
		@limit int,
		@start int,
		@totalcount int output
	)
	as begin
		select @totalcount=count(*) from T_AD_TEST where KHBH like '%'+@KHBH
		select * from T_AD_TEST where KHBH like '%'+@KHBH
	
	end


(3)UI事件挂接

findViewById(R.id.btnJS).setOnClickListener(new OnClickListener() {			
			public void onClick(View v) {
				// TODO Auto-generated method stub
					String url ="http://169.254.1.30:8088/";
	url=url+"GetDbStoreByPage.ashx?act=ACT_AD__KHXX¶ms=3&formId=F0201"
				Handler handler = new Handler() {
					public void handleMessage(Message msg) {
						switch (msg.what) {
						case HttpConnection.DID_START: {
							break;
						}
						case HttpConnection.DID_SUCCEED: {
							Log.i("DID_SUCCEED", ""
									+ HttpConnection.DID_SUCCEED);
							doFxBLCallBack((String) msg.obj);
							break;
						}
						case HttpConnection.DID_ERROR: {
							Log.i("tetst", "test");
							break;
						}
						}
						super.handleMessage(msg);
					}
				};
				AndroidFxBLClientAPI FxBL = new AndroidFxBLClientAPI(url);
				FxBL.AddParam("KHBH", txtBH.getText().toString());
				FxBL.AddParam("start", "0");
				FxBL.AddParam("limit", "20");
				FxBL.BindHandler(handler);
				FxBL.Request();
			}
			private void doFxBLCallBack(String res) {
				Log.i("click", "click");
				FxBLResponse response = new FxBLResponse(res);
				Log.i("GetSuccess", response.GetReturn_msg());
				ArrayList<HashMap<String,String>> arrayList=response.GetArrayList();
				SimpleAdapter adapter=new SimpleAdapter(FxBIActivity.this, arrayList, 
					R.layout.listview,new String[]{"KHMC","LXDH"},
						new int[]{R.id.txt_list_KHMC,R.id.txt_list_lxdh});
				
				listView.setAdapter(adapter);

				// txt.setText(list.get(9).getValue());
				// txt.setText(response.GetRowString(1));
			}

		});


 

2.3 数据写入

(1)数据写入界面

Android环境上使用JCFXBL API接口操作数据库

(2)相关数据表

Android环境上使用JCFXBL API接口操作数据库

(3)数据写入存储过程

 alter proc ACT_AD_HTXX_ADD
	(
		@KHBH nvarchar(100),
		@KHMC nvarchar(100),
		@ZJLX nvarchar(100),
		@ZJH nvarchar(100),
		@LXDH nvarchar(100),
		@return_msg nvarchar(100) output,
		@return_value int output,
		@result nvarchar(100) output
	)
	as begin
		insert T_AD_TEST(KHBH,KHMC,ZJLX,ZJH,LXDH) 										values(@KHBH,@KHMC,@ZJLX,@ZJH,@LXDH)
		set @return_msg=''
		set @return_value=1
		set @result=''
	end


(4)UI事件挂接

findViewById(R.id.btnADD).setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String url = "http://169.254.1.30:8088/Execute.ashx?act=ACT_AD_HTXX_ADD¶ms=7&formId=F0201";
				Handler handler = new Handler() {
					public void handleMessage(Message message) {
						switch (message.what) {
						case HttpConnection.DID_START: {
							break;
						}
						// 连接成功后的处理
						case HttpConnection.DID_SUCCEED: {
							Log.i("DID_SUCCEED", ""
									+ HttpConnection.DID_SUCCEED);
							doFxBLCallBack((String) message.obj);
							break;
						}
						case HttpConnection.DID_ERROR: {
							break;
						}
						}
					}
				};

				AndroidFxBLClientAPI FxBL = new AndroidFxBLClientAPI(url);
				Log.i("KHBH", "" + txtBH.getText().toString());
				//这个两个参数是必须的,而且必须在其他参数前添加
				FxBL.AddParam("sys_username", "admin");
				FxBL.AddParam("sys_password", "123456");
				==============
				FxBL.AddParam("KHBH", txtBH.getText().toString());
				FxBL.AddParam("KHMC", txtKHXM.getText().toString());
				FxBL.AddParam("ZJLX", txtZJLX.getText().toString());
				FxBL.AddParam("ZJH", txtZJH.getText().toString());
				FxBL.AddParam("LXDH", txtLXDH.getText().toString());

				FxBL.BindHandler(handler);
				FxBL.Request();
			}
			private void doFxBLCallBack(String res) {
				Log.i("click", "click");
				FxBLResponse response = new FxBLResponse(res);
				Log.i("GetSuccess", response.GetReturn_msg());
			}
		});


2.4 小结

   数据删除、修改和添加的操作类似。

 

三、总结

   通过JCFXBL平台API,Android下的应用程序可以很方便的访问JCFXBL平台的数据库(如MS SQL、Oracle、MySQL等等)