13 SQLiteOpenHelper SQLiteDatabase详解
2016-09-07 19:54
393 查看
创建数据库:
1. 创建一个类继承SQLiteOpenHelper 2. 创建继承对象 new SQLiteOpenHelper() 3. 用创建的对象获取可写或者可读的SQLiteDatabase 4. 用得到的SQLiteDatabase执行sql语句 * 手动写sql语句 * 调用内置的sql语句API
步骤1详解:
*一个继承的SQLiteOpenHelper类
```java package com.fmy.sql.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class MyOpenHelper extends SQLiteOpenHelper { static final String DPNAME = "info.db"; static final int VERSION = 1; public MyOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } public MyOpenHelper(Context context) { super(context, DPNAME, null, VERSION); } @Override public void onCreate(SQLiteDatabase db) { Log.e("fmy", "被创建了"); } @Override public void onOpen(SQLiteDatabase db) { // TODO Auto-generated method stub super.onOpen(db); Log.e("fmy", "数据库被打开了"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } ```
步骤2详解:
*创建继承对象 new SQLiteOpenHelper()
MyOpenHelper myOpenHelper = new MyOpenHelper(this);
步骤3详解:
*用创建的对象获取可写或者可读的SQLiteDatabase
SQLiteDatabase db = myOpenHelper.getReadableDatabase();
用得到的SQLiteDatabase执行sql语句
手动写sql语句执行
package com.fmy.sql; import com.fmy.sql.db.MyOpenHelper; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.util.Log; import android.view.View; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void create(View v) { MyOpenHelper myOpenHelper = new MyOpenHelper(this); SQLiteDatabase db = myOpenHelper.getReadableDatabase(); Log.e("fmy", "创建表"); db.execSQL("create table if not exists person(_id INTEGER primary key autoincrement,name varchar,age int)"); db.close(); myOpenHelper.close(); } public void insert(View v) { MyOpenHelper myOpenHelper = new MyOpenHelper(this); SQLiteDatabase db = myOpenHelper.getReadableDatabase(); Log.e("fmy", "创建表"); String sql = "insert into person (name,age) values()"; for (int i = 0; i < 50; i++) { db.execSQL("insert into person (name,age) values(" + "'张三" + i + "'" + "," + i + ")"); Log.e("fmy", "创建表"); } db.close(); myOpenHelper.close(); } public void update(View v) { MyOpenHelper myOpenHelper = new MyOpenHelper(this); SQLiteDatabase db = myOpenHelper.getReadableDatabase(); Log.e("fmy", "跟新表"); String sql = "UPDATE person SET name = '李四' WHERE _id=1"; db.execSQL(sql); db.close(); myOpenHelper.close(); } public void delete(View v) { MyOpenHelper myOpenHelper = new MyOpenHelper(this); SQLiteDatabase db = myOpenHelper.getReadableDatabase(); Log.e("fmy", "创建表"); String sql = "DELETE FROM person WHERE _id=2"; db.execSQL(sql); db.close(); myOpenHelper.close(); } public void select(View v) { Log.e("fmy", "查询"); MyOpenHelper myOpenHelper = new MyOpenHelper(this); SQLiteDatabase db = myOpenHelper.getReadableDatabase(); String sql = "select *from person"; Cursor cursor = db.rawQuery(sql,null); while (cursor.moveToNext()){ String name = cursor.getString(cursor.getColumnIndex("name")); Log.e("fmy", "查询"+name); } db.close(); myOpenHelper.close(); } } ``` * API 增删改查 ```java package com.fmy.dbapi; import com.fmy.dbapi.db.MyOpenHelper; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.util.Log; import android.view.View; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void create(View v) { MyOpenHelper myOpenHelper = new MyOpenHelper(this); SQLiteDatabase db = myOpenHelper.getReadableDatabase(); Log.e("fmy", "创建表"); db.execSQL("create table if not exists person(_id INTEGER primary key autoincrement,name varchar,age int)"); db.close(); myOpenHelper.close(); } public void insert(View v) { MyOpenHelper myOpenHelper = new MyOpenHelper(this); SQLiteDatabase db = myOpenHelper.getReadableDatabase(); Log.e("fmy", "插入表"); String sql = "insert into person (name,age) values()"; ContentValues value = new ContentValues(); for (int i = 0; i < 50; i++) { value.put("name", "张三" + i); long insert = db.insert("person", null, value); Log.e("fmy", "插入表" + insert); } db.close(); myOpenHelper.close(); } public void update(View v) { MyOpenHelper myOpenHelper = new MyOpenHelper(this); SQLiteDatabase db = myOpenHelper.getReadableDatabase(); ContentValues values = new ContentValues(); values.put("name", "李四"); int update = db.update("person", values, "_id=?", new String[] { "1" }); Log.e("fmy", "跟新表" + update); db.close(); myOpenHelper.close(); } public void delete(View v) { MyOpenHelper myOpenHelper = new MyOpenHelper(this); SQLiteDatabase db = myOpenHelper.getReadableDatabase(); Log.e("fmy", "创建表"); db.delete("person", "_id=?", new String[] { "2" }); db.close(); myOpenHelper.close(); } public void select(View v) { Log.e("fmy", "查询"); MyOpenHelper myOpenHelper = new MyOpenHelper(this); SQLiteDatabase db = myOpenHelper.getReadableDatabase(); Cursor cursor = db.query("person", null, null, null, null, null, null, "1,2"); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("name")); Log.e("fmy", "查询" + name); } db.close(); myOpenHelper.close(); } }
相关文章推荐
- hive2.1.0+mysql5.1本地模式+Hadoop完全分布式集群的安装与配置
- mysql授权localhost&%区别及一直授权错误解决办法(安装openstack有感)
- mybatis通过SCOPE_IDENTITY()获取insert语句的自增主键时(sqlserver)
- 【完整版】Django--Models和Database--建立查询(model查询和原始sql)[包括Q查询 F查询]
- hadoop2.4.2集群搭建及hive与mysql集成文档记录
- Golang与MySQL
- Durid实现SQL监控
- PL/SQL Developer工具包连接oracle 11g远程数据库
- 使用instantclient_11_2和PL/SQL Developer工具包连接oracle 11g远程数据库
- 使用instantclient_11_2和PL/SQL Developer工具包连接oracle 11g远程数据库
- 使用instantclient_11_2和PL/SQL Developer工具包连接oracle 11g远程数据库
- mysql架构组成
- 运维角度浅谈MySQL数据库优化
- wr703n刷openwrt智能控制--控制mysql、串口通信等
- ORACLE常用性能监控SQL【一】
- 使用instantclient_11_2和PL/SQL Developer工具包连接oracle 11g远程数据库
- 使用instantclient_11_2和PL/SQL Developer工具包连接oracle 11g远程数据库
- mysql状态查看 QPS/TPS/缓存命中率查看
- mysql状态查看 QPS/TPS/缓存命中率查看
- golang调用sql server proc