SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。
具体实现代码
CreaterSqlite.java
/**
* Created by Administrator on 2018-12-29.
* 数据库创建更新类
*/
public class CreaterSqlite extends SQLiteOpenHelper {
/*构造方法创建数据库
* 参数 1.上下文对象 2.数据库名称 3.默认null 4.版本号
*/
public CreaterSqlite(Context context) {
super(context,"database.db",null,1);
Log.v("Log","");
}
/*数据库创建成功后回调的方法
* 参数 db为数据库对象
*
*/
@Override
public void onCreate(SQLiteDatabase db) {
Log.v("Log","");
String sql="create table news(_id integer primary key autoincrement ," +
"name varchar(40)) ";
db.execSQL(sql);
}
//更新数据库调用的方法(版本发生变化时调用此方法)
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
news 数据库工具类
News.java
public class News {
String name;
public News() {
}
public News(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
news 数据表操作类
NewsOperation.java
public class NewsOperation {
private SQLiteDatabase db;
//构造方法获取可操作数据库
public NewsOperation(Context context) {
Log.v("Log","1");
CreaterSqlite createrSqlite = new CreaterSqlite(context);
db = createrSqlite.getReadableDatabase();
}
//插入数据
public void insert(News news) {
Log.v("Log","1");
String sql = "insert into news(name)values(?)";
db.execSQL(sql,new Object[]{news.getName()});
}
//删除数据(根据传入指定值进行删除)
public void delete(int _id) {
String sql = "delete from news where _id=" + _id;
db.execSQL(sql);
}
//修改数据(根据_id修改)
public void update(News news, int id) {
String sql = "update news set name=? where _id=" + id;
db.execSQL(sql, new Object[]{news.getName()});
}
//查询数据
public Cursor query() {
String sql = "select * from news ";
Cursor cursor = db.rawQuery(sql, null);
return cursor;
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
TextView query;
TextView insert;
TextView update;
TextView delete;
NewsOperation newsOperation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
query = (TextView) findViewById(R.id.query);
insert = (TextView) findViewById(R.id.insert);
update = (TextView) findViewById(R.id.update);
delete = (TextView) findViewById(R.id.delete);
//设置点击监听
query.setOnClickListener(this);
insert.setOnClickListener(this);
update.setOnClickListener(this);
delete.setOnClickListener(this);
//创建newsOperation对象进行操作数据表
newsOperation = new NewsOperation(this);
}
//控件点击监听事件
@Override
public void onClick(View v) {
//判断点击按钮
switch (v.getId()) {
case R.id.query://如果点击查询按钮
Cursor query = newsOperation.query();
while (query.moveToNext()) {
Log.v("Log", query.getString(query.getColumnIndex("name")));
}
break;
case R.id.insert:
News news = new News();
news.setName("张三");
newsOperation.insert(news);
break;
case R.id.update:
News news2 = new News();
news2.setName("李四");
newsOperation.update(news2, 1);
break;
case R.id.delete:
newsOperation.delete(2);
break;
}
}
}
xml页面
activity_main.xml
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.ccyumo.myservice.MainActivity">
android:id="@+id/query"
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center"
android:text="查询数据" />
android:id="@+id/insert"
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center"
android:text="插入一条数据" />
android:id="@+id/update"
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center"
android:text="更新数据" />
android:id="@+id/delete"
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center"
android:text="删除一条数据" />