对表的查询
查询返回的是结果集
增删改返回的是受影响的行数
获取数据库对象
执行查询 将结果集放入游标内
取出结果
释放资源
1 获取数据库对象
DBhelper dbHelper = new DBHelper(MainActivity.this);
2.执行查询 将结果集放入游标内
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "select * from userinfo";
Cursor cursor = db.rawQuery(sql, null);
执行查询使用的是rawQuery
3.取出结果
这里使用的是实体类 需要先创建对用的实体类
package com.jzj.day30tage01;
public class Userinfo {
private int id;
private String user;
private String pwd;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
List<userinfo> list = new ArrayList<>();
while (cursor.moveToNext()){
Userinfo userinfo = new Userinfo();
userinfo.setId(cursor.getInt(0));
userinfo.setUser(cursor.getString(1));
userinfo.setPwd(cursor.getString(2));
list.add(userinfo);
}
4.释放资源并遍历在后台输出
cursor.close();
db.close();
for (userinfo userinfo : list) {
Log.i("据","id:"+userinfo.getId()+"user"+userinfo.getUser()+"pwd"+userinfo.getPwd());
}
对表的增删改
1. 获取数据库对象
2. 执行动作
3. 释放资源
1. 获取数据库对象
DBHelper dbHelper = new DBHelper(MainActivity3.this);
2. 执行动作
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "delete from userinfo where id = ?";
db.execSQL(sql,new String[]{"1"});
执行增删改使用的是execSQL
3. 释放资源并在前台提示成功
db.close();
Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
broadcast(广播)
broadcast(广播)是四大组件之一
关键点:只要是四大组件都必须在清单(androidManifest.xml)文件中进行注册
broadcast(广播)是在组件之间传播数据(intent)的一种机制
在组件中进行耗时操作时会报(application No Response简称(ANR) )错误
广播接收器分为:标准广播和有序广播
标准广播分为动态注册和静态注册
动态注册是使用java代码注册
静态注册是直接在androidManifest.xml注册
静态注册
需要创建Broadcast分两种
1.
2.创建一个class并继承 BroadcastReceiver抽象类并实现其中的抽象方法来接收广播
package com.jzj.day30sage02;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("Myreceiver","接收的广播是"+intent.getStringExtra("info"));
}
}
需要在AndroidManifest内给你新创建的Broadcast添加名字
<intent-filter>
<action android:name="houp"></action>
</intent-filter>
3.发送广播
Intent intent = new Intent();
intent.setPackage(getPackageName());
intent.setAction("houp");
intent.putExtra("info","hahaha");
sendBroadcast(intent);
简单的动态注册
1.使用内部类的方法创建广播接收器
class MyBroadcast extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.i("动态的广播接收者","动态接收的数据"+intent.getStringExtra("info1"));
}
}
2.然后调用内部类和IntentFilter来模拟网络广播发送
myBroadcast = new MyBroadcast();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("houp1");
registerReceiver(myBroadcast,intentFilter);
模拟发送
Intent intent = new Intent();
intent.setAction("houp1");
intent.putExtra("info1","动态哈哈哈");
sendBroadcast(intent);