SQLite语法:
Java 的数据类型short/intet/long/float/doiuble/byte[],分别对应SQlite中的数据类型为short/integer/long/float/double/blob.
SQLite支持常用的SQL 如下:
●创建表:create table 表名(_id 类型 约束,……)
Create table if not xists user( _id integer primary key autoincrement, name text,level interger)
●查询数据:select * from 表名 where 条件字句 group by 分组字句 having 分组过滤 order by 排序字句。
Select * from user Select * from user where user_id=1002" Select user_name frorm user group by age having count(*)>1
●分页查询:使用limit 关键字,下面的SQL 表示获取8条记录,跳过前面2条记录。
Select * from user limit 8 offset 2 或者 select * from Account limit 2,8
● 插入数据:insert into 表名(字段列表) values(值列表)
Insert into user(name,age ) values('android',3)
● 更新数据:update 表名 set 字段名=值 where条件语句
Update user set user_name='android2' where user_id='1002'
● 删除数据:delete from 表名 where 条件语句
Delete from user where user_id='1002'
SQlite 数据操作:
Android 中SQlite对数据库的增删改查主要是通过SQliteDataBase类完成。下面看一个具体的例子:
首先建一个MySQLite的类,继承SQLiteOpenHelper
public class MySQLite extends SQLiteOpenHelper { public MySQLite(Context context) { super(context, "hs.db", null, 3); } /** * 1.建库建表 * 2.曾删改查 * 3.更新的时候注意版本 */ @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE user( _id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS user");// 如果数据库存在了这个表,那么删除这个表,重新创建 db.execSQL("CREATE TABLE user( _id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, content TEXT NOT NULL )"); } }
MainActivity类:
public class MainActivity extends ListActivity { private MySQLite sqLite; private SQLiteDatabase dbWriter; private SQLiteDatabase dbReader; private SimpleCursorAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sqLite = new MySQLite(this); dbWriter = sqLite.getWritableDatabase();// 实现数据库的可写权限 dbReader = sqLite.getReadableDatabase();// 实现数据库的可读权限 updateDB(); addDB(); adapter = new SimpleCursorAdapter(this, R.layout.cell, null, new String[] { "title", "content" }, new int[] { R.id.tv1, R.id.tv2 }); setListAdapter(adapter); selectDB(); } public void addDB() { // contentvaluse ContentValues cv = new ContentValues();//必须通过此方法进行添加数据 cv.put("title", "Helloword111"); cv.put("content", "欢迎大家111"); dbWriter.insert("user", null, cv);// 插入到数据库 } public void updateDB() { ContentValues cv = new ContentValues(); cv.put("title", "Hello"); cv.put("content", "大家好"); dbWriter.update("user", cv, "_id=3", null); } public void deleteDB() { dbWriter.delete("user", "_id=4", null); } public void selectDB() { // Cursor Cursor cursor = dbReader.query("user", null, null, null, null, null, null); // 重新适配 adapter.changeCursor(cursor); while (cursor.moveToNext()) { System.out .println(cursor.getString(cursor.getColumnIndex("title"))); System.out.println(cursor.getString(cursor .getColumnIndex("content"))); } } }
运行结果: