android 技术积累.docx_第1页
android 技术积累.docx_第2页
android 技术积累.docx_第3页
android 技术积累.docx_第4页
android 技术积累.docx_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

更通俗的理解:通过使用 WebService,我们能够像调用本地方法一样去调用远程服务器上的方法。我们并不需要关心远程的那个方法是Java写的,还是PHP或C#写的;我 们并不需要关心远程的方法是基于Unix平台,还是Windows平台,也就是说WebService与平台和语言无关。 说到WebSerivce,就必须要知道SOAP和WSDL,它们到底和WebSerice有着怎么的关系?上面已经提到,Web Services是建立在HTTP、SOAP、WSDL等通用协议的基础之上。 SOAP(Simple Object Access Protocol,简单对象访问协议)是一种轻量级的、简单的、基于XML的协议,被设计用于在分布式环境中交换格式化和固化信息的简单协议。也就是说, 要进行通信,进行数据访问传输,就必须依赖于一定的协议,而SOAP正是WebService通信中所依赖的一种协议。目前经常使用的SOAP协议有两个版本:SOAP 1.1 和 SOAP 1.2。 WSDL(Web Services Description Language,即Web服务描述语言)是一种用来描述Web服务的XML语言,它描述了Web服务的功能、接口、参数、返回值等,便于用户绑定和调用 服务。它以一种和具体语言无关的方式定义了给定Web服务调用和应答的相关操作和消息。 WSDL是我们能够实实在在看到的东西,它是一份xml文档,用于描述某个WebSerivce的方方面面。SQLite:下面是创建名为“stu.db”数据库的代码:openOrCreateDatabase(String path,SQLiteDatabae.CursorFactory factory)参数1 数据库创建的路径参数2 一般设置为null就可以了sql view plain copy print ? 在CODE上查看代码片 派生到我的代码片db=SQLiteDatabase.openOrCreateDatabase(/data/data/com.lingdududu.db/databases/stu.db,null); 2、创建表创建一张表的步骤很简单:编写创建表的SQL语句 调用SQLiteDatabase的execSQL()方法来执行SQL语句下面的代码创建了一张用户表,属性列为:id(主键并且自动增加)、sname(学生姓名)、snumber(学号)sql view plain copy print ? 在CODE上查看代码片 派生到我的代码片private void createTable(SQLiteDatabase db) /创建表SQL语句 String stu_table=create table usertable(_id integer primary key autoincrement,sname text,snumber text); /执行SQL语句 db.execSQL(stu_table); 3、插入数据插入数据有两种方法:SQLiteDatabase的insert(String table,String nullColumnHack,ContentValues values)方法, 参数1 表名称, 参数2 空列的默认值 参数3 ContentValues类型的一个封装了列名称和列值的Map;编写插入数据的SQL语句,直接调用SQLiteDatabase的execSQL()方法来执行第一种方法的代码:sql view plain copy print ? 在CODE上查看代码片 派生到我的代码片private void insert(SQLiteDatabase db) /实例化常量值 ContentValues cValue = new ContentValues(); /添加用户名 cValue.put(sname,xiaoming); /添加密码 cValue.put(snumber,01005); /调用insert()方法插入数据 db.insert(stu_table,null,cValue); 第二种方法的代码:sql view plain copy print ? 在CODE上查看代码片 派生到我的代码片private void insert(SQLiteDatabase db) /插入数据SQL语句 String stu_sql=insert into stu_table(sname,snumber) values(xiaoming,01005); /执行SQL语句 db.execSQL(sql); 4、删除数据删除数据也有两种方法:调用SQLiteDatabase的delete(String table,String whereClause,String whereArgs)方法参数1 表名称 参数2 删除条件参数3 删除条件值数组编写删除SQL语句,调用SQLiteDatabase的execSQL()方法来执行删除。第一种方法的代码:sql view plain copy print ? 在CODE上查看代码片 派生到我的代码片private void delete(SQLiteDatabase db) /删除条件 String whereClause = id=?; /删除条件参数 String whereArgs = String.valueOf(2); /执行删除 db.delete(stu_table,whereClause,whereArgs); 第二种方法的代码:sql view plain copy print ? 在CODE上查看代码片 派生到我的代码片private void delete(SQLiteDatabase db) /删除SQL语句 String sql = delete from stu_table where _id = 6; /执行SQL语句 db.execSQL(sql); 5、修改数据修改数据有两种方法:调用SQLiteDatabase的update(String table,ContentValues values,String whereClause, String whereArgs)方法参数1 表名称参数2 跟行列ContentValues类型的键值对Key-Value参数3 更新条件(where字句)参数4 更新条件数组编写更新的SQL语句,调用SQLiteDatabase的execSQL执行更新。第一种方法的代码:sql view plain copy print ? 在CODE上查看代码片 派生到我的代码片private void update(SQLiteDatabase db) /实例化内容值 ContentValues values = new ContentValues(); /在values中添加内容 values.put(snumber,101003); /修改条件 String whereClause = id=?; /修改添加参数 String whereArgs=String.valuesOf(1); /修改 db.update(usertable,values,whereClause,whereArgs); 第二种方法的代码:sql view plain copy print ? 在CODE上查看代码片 派生到我的代码片private void update(SQLiteDatabase db) /修改SQL语句 String sql = update stu_table set snumber = 654321 where id = 1; /执行SQL db.execSQL(sql); 6、查询数据在Android中查询数据是通过Cursor类来实现的,当我们使用SQLiteDatabase.query()方法时,会得到一个Cursor对象,Cursor指向的就是每一条数据。它提供了很多有关查询的方法,具体方法如下:public Cursor query(String table,String columns,String selection,String selectionArgs,String groupBy,String having,String orderBy,String limit);各个参数的意义说明:参数table:表名称参数columns:列名称数组参数selection:条件字句,相当于where参数selectionArgs:条件字句,参数数组参数groupBy:分组列参数having:分组条件参数orderBy:排序列参数limit:分页查询限制参数Cursor:返回值,相当于结果集ResultSetCursor是一个游标接口,提供了遍历查询结果的方法,如移动指针方法move(),获得列值方法getString()等.Android中 Bitmap和Drawable相互转换的方法1.DrawableBitmapResources res=getResources();Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.sample_0);Resources res=getResources();private byte Bitmap2Bytes(Bitmap bm)2.Bitmap-DrawableDrawable drawable =new BitmapDrawable(bmp);3、Drawable Bitmappublic static Bitmap drawableToBitmap(Drawable drawable) Bitmap bitmap = Bitmap.createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); /canvas.setBitmap(bitmap); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(); drawable.draw(canvas); return bitmap;4、从资源中获取BitmapBitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);5、Bitmap byte ByteArrayOutputStream baos = new ByteArrayOutputStream(); press(Bitmap.CompressFormat.PNG, 100, baos); return baos.toByteArray(); 6、 byte Bitmap private Bitmap Bytes2Bimap(byte b) if(b.length!=0) return BitmapFactory.decodeByteArray(b, 0, b.length); else return null; Oracle :存储过程1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGINEND 存储过程名字2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END; .3.IF 判断 IF V_TEST=1 THEN BEGIN do something END; END IF;4.while 循环 WHILE V_TEST=1 LOOP BEGINXXXX END; END LOOP;5.变量赋值 V_TEST := 123;6.用for in 使用cursor . IS CURSOR cur IS SELECT * FROM xxx; BEGINFOR cur_result in cur LOOPBEGINV_SUM :=cur_result.列名1+cur_result.列名2END;END LOOP; END;7.带参数的cursor CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID; OPEN C_USER(变量值); LOOPFETCH C_USER INTO V_NAME; /循环游标 V_NAME是游标返回值EXIT FETCH C_USER%NOTFOUND; /退出循环条件:无记录时退出 do something END LOOP; CLOSE C_USER;8.用pl/sql developer debug 连接数据库后建立一个Test WINDOW 在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试 简单实例,通过DBMS_OUTPUT来看结果CREATE OR REPLACE PROCEDURE bb (lic_para IN VARCHAR2,out_para OUT VARCHAR2)AS temp VARCHAR2 (100);BEGIN SELECT lic_no INTO temp FROM t_vehicle_info WHERE lic_no = lic_para; out_para:=temp; DBMS_OUTPUT.put_line (out_para);END bb;下面是调用:begin - Call the procedure bb(lic_para = :lic_para, out_para = :out_para);end;select v.* from (select t.*,dbo.GETAREANAME(t.area_code) as area_code_name, dbo.GETAREANAME(t.area_id) as area_id_name, dbo.GETAREANAME(t.towns_id) as towns_id_name , (select s.center_short_name from t_cfg_commercial_center s where s.center_id=t.center_id) as center_short_name, dbo.GETSYSNAME(sex,t.sex) as sex_name, dbo.GETSYSNAME(relationship,t.person_relation) as shipowner_id_name, dbo.GETSYSNAME(occupation,t.occupation) as occupation_name, dbo.GETSYSNAME(population_attr,t.population_attr) as population_attr_name, (select k.person_name from t_data_population_info k where k.id=t.shipowner_id) as shipowner_name, (select COUNT(*) from t_data_disease_examine where substring(examine_year,0,5)=:current_year and person_id=t.id) as nums from t_data_population_info t where (:area_key like 0 and t.area_id in (select * from dbo.getareaids(:area_id) )Or(:area_key like 1 and t.area_id =:area_id)Or(:area_key like 2 and t.center_id = :center_id ) case when : area_id != 36 and :area_id!= then (:area _id)else (select * from dbo.getareaids(:area_id) )and t.towns_id in case when : towns_id != then :towns_idelse (select * from dbo.getareaids(:area_id) )and t.center_id in case when :center_id != then :center_idelse (select t.center_id from t_data_population_info t )and state=1 and t.card_id like % +:in_card_id+% and t.person_name like % +:in_person_name+% and t.mobile_phone like % +:in_mobile_phone+% ) v where cast( v.nums as varchar) like % +:in_check+%(:area_key = 0 and t.area_id in (select * from dbo.getareaids(:area_id) )or(:area_key = 1 and t.area_id = :area_id)or(:area_key = 2 and t.center_id = :center_id )And(:area_key = 0 and t.area_id in (select * from dbo.getareai

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论