数据库应用相互通信

1......






1.数据库创建

public class MySQLiteOpenHelp extends SQLiteOpenHelper{
    public MySQLiteOpenHelp(Context context) {
        super(context, "table", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL("create table data(_id integer primary key autoincrement,title text,subtitle text)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}



2.数据库管理

public class MySQLiteDataBase {
    private MySQLiteOpenHelp mySQLiteOpenHelp;
    private static MySQLiteDataBase db;
    private MySQLiteDataBase(Context context) {
        mySQLiteOpenHelp=new MySQLiteOpenHelp(context);
    }

    public static MySQLiteDataBase GetDataBase(Context context){
        db = new MySQLiteDataBase(context);
        return db;
    }

    public void insert(String title,String subtitle){
        SQLiteDatabase sd=mySQLiteOpenHelp.getReadableDatabase();
        ContentValues values=new ContentValues();
        values.put("title",title);
        values.put("subtitle",subtitle);
        sd.insert("data",null,values);
        sd.close();
    }
    public String select(String title){
        SQLiteDatabase sd=mySQLiteOpenHelp.getReadableDatabase();
        Cursor data = sd.query("data", new String[]{"title", "subtitle"}, "title='" + title + "'", null, null, null, null);
        int subtitle = data.getColumnIndex("subtitle");
        String string = data.getString(subtitle);
        sd.close();
        return string;
    }
    public ArrayList<Map<String,String>> selectAll(){
        ArrayList<Map<String, String>> maps = new ArrayList<>();
        SQLiteDatabase sd=mySQLiteOpenHelp.getReadableDatabase();
        Cursor data = sd.query("data", new String[]{"title", "subtitle"}, null, null, null, null, null);
        int titleindex = data.getColumnIndex("title");
        int subtitleindex = data.getColumnIndex("subtitle");
        while(data.moveToNext()){
            Map<String,String> map=new HashMap<>();
            String string = data.getString(titleindex);
            String string1 = data.getString(subtitleindex);
            map.put("title",string);
            map.put("subtitle",string1);
            maps.add(map);
        }
        return maps;
    }
}




3.服务器主代码

public class MyService extends Service {
    public MyService() {

    }
    MyDataAIDL.Stub myDataAIDL=new MyDataAIDL.Stub() {

        @Override
        public String GetString() throws RemoteException {
            MySQLiteDataBase db = MySQLiteDataBase.GetDataBase(MyService.this);
            ArrayList<Map<String, String>> maps = db.selectAll();
            return maps.get(0).get("subtitle");
        }
    };
    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        return myDataAIDL;
    }
}



4.客户端主代码

public class MainActivity extends AppCompatActivity {

    private EditText et_title;
    private EditText et_subtitle;
    private ListView list;
    private ArrayList<Map<String,String>> maps;
    private MyAdapter adapter;
    private MySQLiteDataBase db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        db = MySQLiteDataBase.GetDataBase(this);
        et_title = (EditText) findViewById(R.id.et_title);
        et_subtitle = (EditText) findViewById(R.id.et_subtitle);
        list = (ListView) findViewById(R.id.list);
        maps=new ArrayList<>();
        adapter=new MyAdapter(this,maps);
        list.setAdapter(adapter);
        Load();
    }

    public void Load(){
        maps.clear();
        ArrayList<Map<String, String>> arrayList = db.selectAll();
        maps.addAll(arrayList);
        adapter.notifyDataSetChanged();
    }

    public void onClick(View view) {
        String title = et_title.getText().toString();
        String subtitle = et_subtitle.getText().toString();
        db.insert(title,subtitle);
        Load();
        et_title.setText("");
        et_subtitle.setText("");
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值