Android:SNS客户端开发四:数据库操作(二)
16lz
2021-01-23
上一篇文章列出了在Android上对数据库进行操作的基本流程,及简单的增,删,查的方法。这一篇实现添加用户,查找用户的方法调用。UserInfo类请参考上一篇文章。
在Android中,我们通过ContentValues往数据库中传值,屏蔽了复杂了insert语句,十分方便。首先结合Android:SNS客户端开发二:获取账号资料中,我们得到的用户信息,声明一个ContentValue对象。代码:
ContentValues values = new ContentValues();values.put("userid", user_id);values.put("name", name);values.put("nickname", screen_name);values.put("access_token", access_token);values.put("access_secret", access_secret);values.put("type", "sina");values.put("icon", ImageUtil.getBytesFromUrl(headUrl));
以上的各个字段信息都是在获取账号资料放中得到的。然后我们调用上篇文章中DBOperate中的insert方法,将用户信息插入到数据库中。
if (!dboperate.isExist(values)) {dboperate.insertUser(values);Toast.makeText(context, "添加账号成功", Toast.LENGTH_LONG).show();} else {Toast.makeText(context, "该账号已存在", Toast.LENGTH_LONG).show();}
先判断用户数据是否已经在数据库里,如果不存在则插入到数据库中,若存在则显示账号已存在。
那么到这里,我们的数据库操作基本就完成了。下一篇会开始介绍发送一篇微博的界面设计。
补充:我们可以看到在第一段代码中有这么一句话
values.put("icon", ImageUtil.getBytesFromUrl(headUrl));
在上一篇中,我们在建立user表时,将icon(头像)的数据类型设置为blob,也就是二进制字段。那么我们在将用户头像存入数据库的时候,需要从网络上拉取到用户头像文件,并转化成二进制信息之后再存入数据库。附上ImageUtil中的getBytesFromUrl方法代码:
public class ImageUtil {public static byte[] getBytesFromUrl(String url) throws Exception {return readInputStream(getRequest(url));}public static byte[] readInputStream(InputStream inStream) throws Exception {ByteArrayOutputStream outSteam = new ByteArrayOutputStream();byte[] buffer = new byte[4096];int len = 0;while ((len = inStream.read(buffer)) != -1) {outSteam.write(buffer, 0, len);}outSteam.close();inStream.close();return outSteam.toByteArray();}public static InputStream getRequest(String path) throws Exception {URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");conn.setConnectTimeout(5000);if (conn.getResponseCode() == 200) {return conn.getInputStream();}return null;}}
更多相关文章
- 谷歌将大改Android用户体验 欲取消自定义UI
- android 一个SQLite数据库多个数据表的基本使用框架 (带demo)
- android判断用户是否已登陆详细代码
- android保存用户名密码
- Android studio 开发一个用户登录界面
- android升级数据库(Sqlite)简单示例
- Android Room 数据库
- android数据库操作
- sqlit导入外部数据库查找数据方法