package com.yan.sqlitedatabase;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import java.util.ArrayList;
import adapter.DataAdapter;
import bean.User;
import database.DataHellper;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
/***
* 创建数据库,更新数据库,数据插入,数据更新,数据查询,数据删除
*/
private Button btn_createDatabase, btn_updateDatabase, btn_insert, btn_update, btn_select, btn_delete;
private ListView mine_lsit;
private ArrayList<User> mListData=new ArrayList<>();
private DataAdapter mDataAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mains);
iniViews();
}
private void iniViews() {
mine_lsit= (ListView) findViewById(R.id.mine_lsit);
View headerView= LayoutInflater.from(this).inflate(R.layout.activity_main,null);
btn_createDatabase = (Button) headerView.findViewById(R.id.btn_createDatabase);
btn_updateDatabase = (Button)headerView. findViewById(R.id.btn_updateDatabase);
btn_insert = (Button) headerView.findViewById(R.id.btn_insert);
btn_update = (Button)headerView. findViewById(R.id.btn_update);
btn_select = (Button)headerView. findViewById(R.id.btn_select);
btn_delete = (Button)headerView. findViewById(R.id.btn_delete);
btn_createDatabase.setOnClickListener(this);
btn_updateDatabase.setOnClickListener(this);
btn_insert.setOnClickListener(this);
btn_update.setOnClickListener(this);
btn_select.setOnClickListener(this);
btn_delete.setOnClickListener(this);
mine_lsit.addHeaderView(headerView);
mDataAdapter=new DataAdapter(mListData,this);
mine_lsit.setAdapter(mDataAdapter);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_createDatabase:
createDatabase();
break;
case R.id.btn_updateDatabase:
updateDataBase();
break;
case R.id.btn_insert:
insertData();
break;
case R.id.btn_update:
update();
break;
case R.id.btn_select:
queryData();
break;
case R.id.btn_delete:
deleteData();
break;
}
}
/***
* 进行数据的删除
* @return
* */
private void deleteData() {
DataHellper dbHelper=getDataBase();
SQLiteDatabase db=dbHelper.getReadableDatabase();
//1:String:表名
//2:String:条件查询语句
//3:String[]:条件值
//调用SQLiteDatabase对象的delete方法进行删除的操作
db.delete("user","id=?",new String[]{"1"});
}
/***
* @return 在这里进行数据的查询
* */
private void queryData() {
String id=null;
String name=null;
String age=null;
DataHellper dbHelper=getDataBase();
//得到一个制毒的SqliteDatabase对象
SQLiteDatabase db=dbHelper.getReadableDatabase();
//调用SQLITEDatabase对象的query方法进行查询,返回一个curosr对象,由数据库查询返回的结果;
//第一个参数:String:表明
//第二个参数:String[]:要查询的列名
//第第三个参数:String:查询的条件
//第四个参数:String[]:查询条件的参数
//5:String:对查询的结果进行分组
//6:String:对分组的结果进行限制
//7:String:对查询的结果进行排序
Cursor cursor=db.query("user",new String[]{"id","name","age"},"id=?",new String[]{"1"},null,null,null);
//将光标移动到下一行,从而判断改结果集是否还有吓一跳数据,如果有返回true,没有就返回false
while(cursor.moveToNext()){
id=cursor.getString(cursor.getColumnIndex("id"));
name=cursor.getString(cursor.getColumnIndex("name"));
age=cursor.getString(cursor.getColumnIndex("age"));
mListData.add(new User(id,name,age));
}
mDataAdapter.notifyDataSetChanged();
}
/***
* @return 进行数据的更新
*/
private void update() {
//创建一个DatabaseHeler对象
DataHellper dataheler = getDataBase();
SQLiteDatabase db = dataheler.getWritableDatabase();
//创建一个ContentValues对象;
ContentValues values = new ContentValues();
values.put("name", "zhangsan");
//调用update方法
//第一个参数:String:表明
//第二参数:ContentValues:ContentValues 对象
//第三个参数:String:where字句,相当于sql语句where后面的,?是占位符
//第四个参数:String[]:占位符的值
db.update("user", values, "id=?", new String[]{""});
}
private void insertData() {
//创建ContentValues对象,
ContentValues values = new ContentValues();
//向该对象中插入键值对,其中键是列名,值是希望插入到这一列的值,值必须喝数据库当中的数据类型一样
values.put("id", 1);
values.put("name", "yangyz");
values.put("age","13");
//创建数据库对象
//得到一个可写的数据库对象
DataHellper dbHelper = getDataBase();
//得到一个可写的数据库SQLiteDatabase对象
SQLiteDatabase db = dbHelper.getWritableDatabase();
//第一参数insert 将数据插入到数据库中
//第二个参数:SQL 不允许一个空列,如果ContentValues是空的,那么这一列被明确只名为null
//第三个参数:contentValues对象
db.insert("user", null, values);
}
@NonNull
private DataHellper getDataBase() {
return new DataHellper(MainActivity.this,
"mine_test_db", 2);
}
/***
* @return 进行数据库的更新
*/
private void updateDataBase() {
DataHellper dbHelper = getDataBase();
// 得到一个只读的SQLiteDatabase对象
SQLiteDatabase sqliteDatabase = dbHelper.getReadableDatabase();
}
/***
* 创建数据库
*
* @return
*/
private void createDatabase() {
// 创建了一个DatabaseHelper对象,只执行这句话是不会创建或打开连接的
DataHellper dbhelper = new DataHellper(MainActivity.this, "mine_test_db");
// 只有调用了DatabaseHelper的getWritableDatabase()方法或者getReadableDatabase()方法之后,才会创建或打开一个连接
SQLiteDatabase sqldb = dbhelper.getReadableDatabase();
}
}
评论0
最新资源