
Android提供了一个名为SQLiteDatabase的类,该类封装了一些 *** 作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete) *** 作(这些 *** 作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句; rawQuery()方法用于执行select语句。
execSQL()方法的使用例子:
SQLiteDatabase db = ....
db.execSQL("insert into person(name, age) values('1', 24)")
db.close()
执行上面SQL语句会往person表中添加进一条记录,在实际应用中, 语句中的“林计钦”这些参数值会由用户输入界面提供,如果把用户输入的内容原样组拼到上面的insert语句, 当用户输入的内容含有单引号时,组拼出来的SQL语句就会存在语法错误。要解决这个问题需要对单引号进行转义,也就是把单引号转换成两个单引号。有些时候用户往往还会输入像“ &”这些特殊SQL符号,为保证组拼好的SQL语句语法正确,必须对SQL语句中的这些特殊SQL符号都进行转义,显然,对每条SQL语句都做这样的处理工作是比较烦琐的。 SQLiteDatabase类提供了一个重载后的execSQL(String sql, Object[] bindArgs)方法,使用这个方法可以解决前面提到的问题,因为这个方法支持使用占位符参数(?)。
先下载swifthttp,然后将他的xcodeproj的文件拖到项目中。然后选择项目。选择general下面的embedded binaries增加swifthttp.frameworkios。然后就可以了。说明这个swifthttp已经此用到项目中了。
然后我们使用就可以了。但是在使用的地方,需要引用一下。
@IBAction func httppost(sender: AnyObject) {
do {
let opt =tryHTTP.GET("http://115.29.190.170:7777/WebService1.asmx/GetCar_Type_List?password=。。。。。")
opt.start { response in
if let err = response.error {
print("error: \(err.localizedDescription)")
return
}
print("获取到数据: \(response.description)")
}
} catch let error {
print("请求失败: \(error)")
}
}
在使用前使用:import SwiftHTTP
这时就可以了。但是ios9可能加了一些安全认证的东西。会出现错误提示:
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
大概的意思就是http不能用。要使用https,所以我们还需要对系统设置一下。网上说的是:
在Info.plist中添加NSAppTransportSecurity类型Dictionary。
在NSAppTransportSecurity
下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
而我测试的。好象不行。查了一些资料,显示的是在项目里面。也就是:
XCODE,点project图标,在info选项卡里再加一遍,不是直接修改plist文件,而是在info选项卡(就是general、build setting...那个地方)里再增加一遍就好了!
增加之后。显示的不太一样,我的系统显示的是:
App Transport Security Settings 类型Dictionary。
在他下面子项:Allow Arbitrary Loads 类型是:boolean,yes
这时系统就可以取到数据了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)