android操作SQLite增删改减实现代码
程序员文章站
2023-12-09 15:51:03
如果一个应用程序中的数据库无需提供对外访问,实现一个继承自sqliteopenhelper的数据库帮助类,以支持数据库的创建和版本的更新, 这些sqlitedatabase...
如果一个应用程序中的数据库无需提供对外访问,实现一个继承自sqliteopenhelper的数据库帮助类,以支持数据库的创建和版本的更新, 这些sqlitedatabase所不能实现的.但是sqlitedatabase却具备一些非常重要的对数据库进行操作的方法,数据表的创建删除、数据 的增删改查都是通过它实现的。
执行增删改操作方法 :db.execsql(sql); 或者db.insert()、db.delete()、db.update(),并且包括数据表的创建和删除等等也可以通过execsql实现
//创建表
public boolean createtable(){
sqlitedatabase db=dbhelper.getwritabledatabase();
string sql="create table if not exists "+table_name+"(id integer primary key,name varchar,age integer)";
try{
db.execsql(sql);
return true;
}catch(sqlexception ex){
log.d(tag, "create table failure");
return false;
}
}
//添加数据
public boolean adddata(){
string name=etname.gettext().tostring();
string age=etage.gettext().tostring();
sqlitedatabase db=dbhelper.getwritabledatabase();
string sql="insert into "+table_name+"(name,age) values ('"+name+"','"+age+"')";
try{
db.execsql(sql);
return true;
}catch(sqlexception ex){
log.d(tag, "add data failure");
return false;
}
}
//修改
public boolean updatedata(){
sqlitedatabase db=dbhelper.getwritabledatabase();
string sql="update "+table_name+" set age='2' where name like 'cb'";
object[] bindargs={"cb"};
try{
db.execsql(sql, bindargs);
return true;
}catch(sqlexception ex){
log.d(tag, "update data failure");
return false;
}
}
执行数据查询方法:db.rawquery(sql, selectionargs); 或者db.query(table, columns, selection, selectionargs, groupby, having, orderby);
//查询 public void selectdata(){
sqlitedatabase db=dbhelper.getreadabledatabase();
string[] columns={"name"};
cursor cursor=db.query(table_name, columns, null, null, null, null, null);
string names="";
while(cursor.movetonext()){
int c=cursor.getcolumnindexorthrow("name");
string name=cursor.getstring(c);
//< = >
//string name=cursor.getstring(0);//只查询了一列
if(names==""){
names=name;
}else{
names=names+"\n"+name;
}
}
tvname.settext(names);
//另外一种查询方法
//string sql="select name from "+table_name;
//curosr cursor=db.rawquery(sql, null);
}
执行增删改操作方法 :db.execsql(sql); 或者db.insert()、db.delete()、db.update(),并且包括数据表的创建和删除等等也可以通过execsql实现
复制代码 代码如下:
//创建表
public boolean createtable(){
sqlitedatabase db=dbhelper.getwritabledatabase();
string sql="create table if not exists "+table_name+"(id integer primary key,name varchar,age integer)";
try{
db.execsql(sql);
return true;
}catch(sqlexception ex){
log.d(tag, "create table failure");
return false;
}
}
//添加数据
public boolean adddata(){
string name=etname.gettext().tostring();
string age=etage.gettext().tostring();
sqlitedatabase db=dbhelper.getwritabledatabase();
string sql="insert into "+table_name+"(name,age) values ('"+name+"','"+age+"')";
try{
db.execsql(sql);
return true;
}catch(sqlexception ex){
log.d(tag, "add data failure");
return false;
}
}
//修改
public boolean updatedata(){
sqlitedatabase db=dbhelper.getwritabledatabase();
string sql="update "+table_name+" set age='2' where name like 'cb'";
object[] bindargs={"cb"};
try{
db.execsql(sql, bindargs);
return true;
}catch(sqlexception ex){
log.d(tag, "update data failure");
return false;
}
}
执行数据查询方法:db.rawquery(sql, selectionargs); 或者db.query(table, columns, selection, selectionargs, groupby, having, orderby);
复制代码 代码如下:
//查询 public void selectdata(){
sqlitedatabase db=dbhelper.getreadabledatabase();
string[] columns={"name"};
cursor cursor=db.query(table_name, columns, null, null, null, null, null);
string names="";
while(cursor.movetonext()){
int c=cursor.getcolumnindexorthrow("name");
string name=cursor.getstring(c);
//< = >
//string name=cursor.getstring(0);//只查询了一列
if(names==""){
names=name;
}else{
names=names+"\n"+name;
}
}
tvname.settext(names);
//另外一种查询方法
//string sql="select name from "+table_name;
//curosr cursor=db.rawquery(sql, null);
}