SQLite数据库有点类似于Access(这是一个让人感觉很蛋疼的数据库,功能实在太弱了),也是一个文件数据库,但它比Access强大得多,甚至支持事务,其用法和MySQL几乎一样
下面是具体的用法(直接使用sql语句,也有自带的updata/insert/delete的方法,可以供没有学过SQL的人使用,我想这种程序员应该是少之又之吧,可以忽略了,还是自己写SQL语句比较好),API就不列举出来了,没有意思,有空查查就好了
使用完以后,要记得关闭数据连接db.close()
其用法如下
//开始事务
db.beginTransaction();
try
{
//执行DML语句
...
//调用该方法设置事务成功,否则endTransaction()方法将回滚事务
db.setTransactionSuccessful();
}
finally
{
//由事务的标志决定是提交事务还是回滚事务
db.endTransaction();
}
下面是具体的用法(直接使用sql语句,也有自带的updata/insert/delete的方法,可以供没有学过SQL的人使用,我想这种程序员应该是少之又之吧,可以忽略了,还是自己写SQL语句比较好),API就不列举出来了,没有意思,有空查查就好了
上面已经试着插入了几条记录
下面是上图效果的代码
package WangLi.IO.DBTest;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class DBTest extends Activity
{
SQLiteDatabase db;
Button bn = null;
ListView listView;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//创建或打开数据库(此处需要使用绝对路径)
db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir()
.toString() + "/my.db3" , null);
listView = (ListView)findViewById(R.id.show);
bn = (Button)findViewById(R.id.ok);
bn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View source)
{
//获取用户输入
String title = ((EditText)findViewById(R.id.title))
.getText().toString();
String content = ((EditText)findViewById(R.id.content))
.getText().toString();
try
{
insertData(db , title , content);
Cursor cursor = db.rawQuery("select * from news_inf", null);
inflateList(cursor);
}
catch(SQLiteException se)
{
//执行DDL创建数据表
db.execSQL("create table news_inf(_id integer primary key autoincrement,"
+ " news_title varchar(50),"
+ " news_content varchar(255))");
//执行insert语句插入数据
insertData(db , title , content);
//执行查询
Cursor cursor = db.rawQuery("select * from news_inf", null);
inflateList(cursor);
}
}
});
}
private void insertData(SQLiteDatabase db
, String title , String content)
{
//执行插入语句
db.execSQL("insert into news_inf values(null , ? , ?)"
, new String[]{title , content});
}
private void inflateList(Cursor cursor)
{
//填充SimpleCursorAdapter
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
DBTest.this , R.layout.line, cursor
, new String[]{"news_title" , "news_content"}
, new int[]{R.id.my_title , R.id.my_content});
//显示数据
listView.setAdapter(adapter);
}
@Override
public void onDestroy()
{
super.onDestroy();
//退出程序时关闭SQLiteDatabase
if (db != null && db.isOpen())
{
db.close();
}
}
}
使用完以后,要记得关闭数据连接db.close()
同样可以在DDMS中找到刚刚创建的数据库
下面用sqlite3工具来查看刚刚插入的数据
首先就需要设置adb的环境变量,这样就不用tools的路径,可以直接输入adb的命令了
设置adb的环境变量,参考
http://blog.163.com/lingliu_08@126/blog/static/12038445020116129495344/
在Android中使用命令行查看内嵌数据库
http://blog.csdn.net/cjjky/article/details/6447121
下面是我查看数据库的截屏,中文数据为乱码,不能正常的显示出来
下面链接是sqlite3这个工具的使用,有具体的命令用法可以参考
http://yuanzhifei89.iteye.com/blog/1123870