当前位置:网站首页>SQlife(数据库)
SQlife(数据库)
2022-07-27 17:02:00 【Ashurol】
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//每个程序都有自己的数据库 默认情况下是各自互相不干扰
//创建一个数据库 并且打开
SQLiteDatabase db=openOrCreateDatabase("user.db", MODE_PRIVATE, null);
db.execSQL("create table if not exists usertb(_id integer primary key autoincrement, name text not null, age integer not null,sex text not null)");//在数据库里建表
/*
* 第一种往表里增加数据的方法
*/
// db.execSQL("insert into usertb(name,sex,age) values('张三','男',66)");
// db.execSQL("insert into usertb(name,sex,age) values('李四','男',22)");
// db.execSQL("insert into usertb(name,sex,age) values('王五','男',33)");
// db.execSQL("insert into usertb(name,sex,age) values('老王他老婆','女',45)");<img src="https://img-blog.csdn.net/20150719011908954?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
/*
* 第二种往表里增加数据的方法
*/
ContentValues values=new ContentValues();/*ContentValues类和Hashtable比较类似,
它也是负责存储一些键值对,
但是它存储的键值对当中的键是一个String类型,而值都是基本类型。*/
values.put("name", "张三");//语句将列名和对应的列值放置到Values里边。
values.put("sex", "男");
values.put("age", 21);
long rowId=db.insert("usertb", null, values);//语句负责插入一条新的纪录,如果插入成功则会返回这条记录的id,如果插入失败会返回-1。
values.clear();//清除values里的内容,也可以重新创建ContentValues对象
values.put("name", "王二");
values.put("sex", "男");
values.put("age", 29);
db.insert("stutb", null, values);
values.clear();values.put("name", "小脑");
values.put("sex", "女");
values.put("age", 25);
db.insert("stutb", null, values);
values.clear();values.put("name", "小鱼");
values.put("sex", "男");
values.put("age", 18);
db.insert("stutb", null, values);
values.clear();
values.put("name", "田湾");
values.put("sex", "男");
values.put("age", 23);
db.insert("stutb", null, values);
values.clear();
values.put("name", "张三封");
values.put("sex", "男");
values.put("age", 55);
db.insert("stutb", null, values);
values.clear();<img src="https://img-blog.csdn.net/20150719011933912?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
/*
* 修改表里的信息
*/
values.put("sex", "女");
db.update("stutb", values, "_id>?", new String[]{"2"});//将全部id>2的人的性别改成女
/*
* 删除数据库信息
*/
db.delete("stutb", "name like ?", new String[]{"%二%"});//删除所有名字中带有二的人
/*
* 查询方法1db.rawQuery()
*/
// Cursor c=db.rawQuery("select * from usertb", null);//查询表内所有数据
// if(c!=null)
// {
// while(c.moveToNext())
// {
// Log.i("info","_id:"+c.getInt(c.getColumnIndex("_id")));
// Log.i("info","name:"+c.getString(c.getColumnIndex("name")));
// Log.i("info","name:"+c.getString(c.getColumnIndex("sex")));
// Log.i("info","name:"+c.getString(c.getColumnIndex("age")));
// Log.i("info","---------");
// }
// c.close();
// }
// db.close();
/*
* 查询方法2db.query()
*/
Cursor c= db.query("stutb", null, "_id>?", new String[]{"0"}, null, null, "_id");//_id代表排序方式,也可以用name这种排序方式
if (c!=null) {
String [] columns= c.getColumnNames();//getColumnNames()——返回所有列的名字,getColumnCount()-返回所以列的总数
while (c.moveToNext()) {
for (String columnName : columns) //增强循环,将数组columns里的数依次取出赋值给columnName
{
Log.i("info", c.getString(c.getColumnIndex(columnName)));
}
}
c.close();
}
db.close();
}
}//用SQLiteOpenHelper类建数据库
<pre name="code" class="java">public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DBOpenHelper helper = new DBOpenHelper(MainActivity.this, "stu.db");
// helper.getReadableDatabase();//获取一个只读的数据库 只能查询 不能写入 不能更新
SQLiteDatabase db = helper.getWritableDatabase();
// db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy)
Cursor c = db.rawQuery("select * from stutb", null);
if (c!=null) {
String [] cols = c.getColumnNames();//得到所以列名
while (c.moveToNext()) {
for (String ColumnName : cols) //将cols数组里的元素赋值给ColumnName
{
Log.i("info", ColumnName+":"+c.getString(c.getColumnIndex(ColumnName)));
}
}
c.close();
}
db.close();
}
}
//SQLiteOpenHelper类<pre name="code" class="java">public class DBOpenHelper extends SQLiteOpenHelper{
public DBOpenHelper(Context context, String name) {
super(context, name, null, 1);
// TODO Auto-generated constructor stub
}
public DBOpenHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
//首次创建数据库的时候调用 一般是建库 建表的操作
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table if not exists stutb(_id integer primary key autoincrement,name text not null,sex text not null,age integer not null)");
db.execSQL("insert into stutb(name,sex,age)values('张三','女',18)");
}
@Override//当数据库的版本发生变化的时候 会自动执行
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}

边栏推荐
- 【日常积累 - 07】cuda多版本切换
- 细数国产接口协作平台的六把武器!
- OPPO发布首款AR眼镜,宣布未来3年投入500亿进行研发
- Uncover the mystery of Qualcomm ultrasonic fingerprint being "cracked by film"
- 【华为云Stack】【大架光临】第13期:管理区解耦架构见过吗?帮政企客户搞定大难题
- 嵌入式C语言结构体
- c语言:15、结构体
- Intel's process roadmap for the next 10 years is exposed: 1.4nm process will be launched in 2029! How?
- Intent(有无返回值得跳转)
- Chinese character search Pinyin wechat applet project source code
猜你喜欢

rxbinding

c语言:11、管道
![[basic knowledge of deep learning - 43] concept of odds ratio](/img/74/d7d1562ada4671864961721b9a1baf.png)
[basic knowledge of deep learning - 43] concept of odds ratio

Make your chat bubbles colorful

ToggleButton(按钮开关)

嵌入式C语言结构体
Dry goods of technical practice | preliminary exploration of large-scale gbdt training

【深度学习基础知识 - 43】优势比的概念

c语言:12、gdb工具调试c程序
![[basic knowledge of deep learning - 46] Bayesian theorem and conditional probability formula](/img/9f/b9d7503404e068495fd8613df29366.png)
[basic knowledge of deep learning - 46] Bayesian theorem and conditional probability formula
随机推荐
Introduction to Flink operator
带来高价值用户体验的低代码开发平台
二叉搜索树
ArrayAdapter(数组适配器)与SimpleAdapter(简单适配器)
c语言:clion调试方法
[basic knowledge of deep learning - 48] characteristics of Bayesian network
C language: 6. Simple use and precautions of pointer
坚持软硬一体化,一恒科发力智能化教育机器人市场
【深度学习基础知识 - 44】逻辑回归实现多分类的方法
时间复杂度和空间复杂度
Embedded C language loop deployment
原厂PW4203降压型1-3节锂电池充电芯片
Low code implementation exploration (45) business parameters
【深度学习基础知识 - 40】CNN为什么比DNN在图像领域更具优势
【深度学习基础知识 - 47】贝叶斯网络与朴素贝叶斯
[daily accumulation - 07] CUDA multi version switching
反超华为?爱立信已拿下超过75份5G商用合同
C language: C language code style
GestureOverlayView(手势识别2)
c语言:9、main函数中的return