这个类用来帮助建立打开数据库:
package com.kevin.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DbOpHelper extends SQLiteOpenHelper
{
private static final String dbName = "GeekDiary.db";
public DbOpHelper(Context context,int version)
{
super(context, dbName, null, version);
}
@Override
public void onCreate(SQLiteDatabase db)
{
String sql = "create table diary("//
+ "date varchar primary key,"//
+ "count varchar,"//
+ "title varchar"//
+ ");";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
}
}
定义一个接口,用来规定对数据库的操作:
package com.kevin.db;
import android.content.Context;
public interface DbOperate
{
public void addData(Context context, int version, String title, String count);
}
实现接口的类:
package com.kevin.db;
import com.kevin.util.DateUtil;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
public class DbOperateImp implements DbOperate
{
@Override
public void addData(Context context, int version, String title, String count)
{
SQLiteDatabase sdb = null;
try
{
DbOpHelper dbOpHelper = new DbOpHelper(context, version);
sdb = dbOpHelper.getWritableDatabase();
String sql = "insert into diary values(?,?,?)";
sdb.execSQL(sql, new String[]
{ DateUtil.getStrDate(), count, title });
} catch (Exception e)
{
} finally
{
sdb.close();
}
}
}
Activity:
package com.kevin.activity;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import com.kevin.db.DbOperate;
import com.kevin.db.DbOperateImp;
public class MainActivity extends BaseActivitiy implements OnClickListener
{
private EditText etTitle, etCount;
private Context context;
private Button bnCommit;
private int dbVersion = 1;
private DbOperate operate;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
operate = new DbOperateImp();
}
private void initViews()
{
context = MainActivity.this;
etTitle = (EditText) findViewById(R.id.et_title);
etCount = (EditText) findViewById(R.id.et_count);
bnCommit = (Button) findViewById(R.id.bn_commit);
bnCommit.setOnClickListener(this);
}
SQLiteDatabase sdb;
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.bn_commit:
String title = etTitle.getText().toString();
String count = etCount.getText().toString();
operate.addData(context, dbVersion, title, count);
break;
default:
break;
}
}
}
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="60dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:gravity="center"
android:text="---" />
<Button
android:id="@+id/bn_commit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="Commit" />
</RelativeLayout>
<EditText
android:id="@+id/et_title"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/et_count"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
OK,够简单吧。
再来说下adb打开已建立的数据库。
首先,确保adb能够在cmd下运行出来,配置adb环境变量。
1.新建环境变量
2.放到path变量中引用
3.cmd下验证
OK,下面来打开数据库。
可以输入“.table”来查看都有哪些表。
select * from sqlite_master where type=”table”;来查看表结构。
select * from sqlite_master where type=”table” and name=”diary”;查看名为diary的表的结构。