SQLite的基本语法
Activity代码
package com.example.day1014_job;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button add_button;
private Button remove_button;
private Button refresh_button;
private Button update_button;
private String sql;
private SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
MySqlHelp mySqlHelp = new MySqlHelp(this, "user.db", null, 1);
// 可读可写(如果数据库存在就打开 不存在就创建), 内存不足 重新尝试打开
db = mySqlHelp.getReadableDatabase();
// 可读可写(如果 数据库存在打开 不存在创建),直接报错
// mySqlHelp.getWritableDatabase();
}
private void initView() {
add_button = (Button) findViewById(R.id.add_button);
remove_button = (Button) findViewById(R.id.remove_button);
refresh_button = (Button) findViewById(R.id.refresh_button);
update_button = (Button) findViewById(R.id.update_button);
add_button.setOnClickListener(this);
remove_button.setOnClickListener(this);
refresh_button.setOnClickListener(this);
update_button.setOnClickListener(this);
}
/**
* 操作数据的 两种 方式: 原生/方法
* @param v
*/
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.add_button: // 添加
// 原生
// sql = "insert into user values(?,?,?)";
// db.execSQL(sql,new Object[]{null,"恶魔","大魔头"});
// 方法
ContentValues contentValues = new ContentValues();
contentValues.put("sex","妖怪");
contentValues.put("name","总钻风");
db.insert("user",null,contentValues);
break;
case R.id.remove_button: // 删除
// 原生
// sql ="delete from user where sex = ? ";
// db.execSQL(sql,new Object[]{"恶魔"});
// 方法
db.delete("user","sex=?",new String[]{"妖怪"});
break;
case R.id.refresh_button: // 查询
// 原生
// sql = "select * from user";
// Cursor cursor = db.rawQuery(sql, new String[]{});
// if(cursor != null){
// while (cursor.moveToNext()){
// int id = cursor.getInt(cursor.getColumnIndex("id")); // 获取id
// String sex = cursor.getString(cursor.getColumnIndex("sex"));//获取性别
// String name = cursor.getString(cursor.getColumnIndex("name"));// 获取姓名
// Log.d("---", "refres-查询: -"+id+"-"+sex+"-"+name);
// }
// }
//方法
Cursor cursor = db.query("user", null, null, null, null, null, null);
// 获取 cursor 内的数据
if (cursor != null){
while (cursor.moveToNext()){
int id = cursor.getInt(cursor.getColumnIndex("id"));
String sex = cursor.getString(cursor.getColumnIndex("sex"));
String name = cursor.getString(cursor.getColumnIndex("name"));
Log.d("---", "regres-方法查询: "+id+"-"+sex+"-"+name);
}
}
break;
case R.id.update_button: // 更新
//原生
// sql = "update user set name = ? where sex = ?";
//// db.execSQL(sql,new Object[]{"小钻风","恶魔"});
//方法
ContentValues contentValues1 = new ContentValues();
contentValues1.put("sex","仙人");
contentValues1.put("name","悟空");
db.update("user",contentValues1,"sex=?",new String[]{"妖怪"});
break;
}
}
}
MySqlHelp代码
package com.example.day1014_job;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MySqlHelp extends SQLiteOpenHelper {
/**
*
* @param context
* @param name
* @param factory
* @param version
*/
public MySqlHelp(Context context,String name,SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
//用户数据库中的表的创建
/**
* primary(主要的) key 主键
* autoincrement 自动 增量
* 只会执行一次
* @param db // 用于操作数据库 增删改
*/
@Override
public void onCreate(SQLiteDatabase db) {
// 创建表 设置id 为主键自增
db.execSQL("create table user (id integer primary key autoincrement,sex varchar(20),name varchar(20))");
}
/**
* 多次多用
* 数据库更新 当前版本更新的时候 调用
* @param db
* @param oldVersion
* @param newVersion
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
创建时事务添加数据
package com.example.day1014_topic9.sql;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MySqlHelp extends SQLiteOpenHelper {
/**
*
* @param context 上下文
* @param name 数据库名称
* @param factory null 工厂
* @param version 数据库版本
*/
public MySqlHelp(Context context,String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
// 用户数据库中的表的创建
/** *
* // 只会执行一次
* @param db // 用于操作数据库 增删改查
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table user (id integer primary key autoincrement,name varcher(20))");
db.beginTransaction(); // 开启事务
try {
for (int i = 0; i < 100; i++) {
db.execSQL("insert into user values (null,'大魔头')");
}
db.setTransactionSuccessful(); // 成功
}catch (Exception e){
e.printStackTrace();
}finally {
db.endTransaction();// 结束事务
}
}
/**
* // 可以被多次调用
* 数据库更新 当版本跟新的时候 调用
* @param db
* @param oldVersion
* @param newVersion
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
转载:https://blog.csdn.net/TheDevil_/article/details/102556781
查看评论