加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

一个关于SQLite小程序 ,请大家多多指教!

发布时间:2020-12-12 23:34:31 所属栏目:百科 来源:网络整理
导读:package com.jiao.sqlite; import android.app.Activity; import android.database.Cursor; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;

package com.jiao.sqlite;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class DbDemo extends Activity {

/**
* SQLite Demo
*
* 供Activity私有访问的数据库 没有使用ContentProvider 方式 增加 查询数据
*
* @author daguangspecial@gmail.com
*
*/

EditText inputTxt;
Button btnAdd;
Button btnViewAll;
TextView viewAll;

DBHelper db;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
// 初始化UI
btnAdd = (Button) findViewById(R.id.btnAdd);
btnViewAll = (Button) findViewById(R.id.btnViewAll);
viewAll = (TextView) findViewById(R.id.viewAll);
inputTxt = (EditText) findViewById(R.id.txtInput);
// 初始化DB
db = new DBHelper(this);
// 初始化监听
OnClickListener listener = new OnClickListener() {

public void onClick(View v) {
if (v.getId() == R.id.btnAdd) {
// 增加
boolean flat=db.save(inputTxt.getText().toString());

if(flat){
Toast.makeText(DbDemo.this,"添加成功!",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(DbDemo.this,"添加失败!",Toast.LENGTH_LONG).show();

}
} else if (v.getId() == R.id.btnViewAll) {
// 浏览所有数据
Cursor cur = db.loadAll();
StringBuffer sf = new StringBuffer();
cur.moveToFirst();
while (!cur.isAfterLast()) {
sf.append(cur.getInt(0)).append(" : ").append(
cur.getString(1)).append("/n");
cur.moveToNext();
}
cur.moveToFirst();
viewAll.setText(sf.toString());
}
}
};
btnAdd.setOnClickListener(listener);
btnViewAll.setOnClickListener(listener);
}

@Override
public boolean onKeyDown(int keyCode,KeyEvent event) {
// TODO Auto-generated method stub
switch(keyCode){
case KeyEvent.KEYCODE_BACK:
db.close();
this.finish();

return true;
}
return super.onKeyDown(keyCode,event);
}

}

DBHelper类:

package com.jiao.sqlite;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

/**
* 数据库操作工具类
*
* @author daguangspecial@gmail.com
*
*/
public class DBHelper {
private static final String TAG = "DBDemo_DBHelper";// 调试标签

private static final String DATABASE_NAME = "dbdemo.db";// 数据库名
SQLiteDatabase db;
Context context;//应用环境上下文 Activity 是其子类

DBHelper(Context _context) {
context = _context;
//开启数据库

db = context.openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,null);
CreateTable();
Log.v(TAG,"db path=" + db.getPath());
}

/**
* 建表
* 列名 区分大小写?
* 都有什么数据类型?
* SQLite 3
* TEXT 文本
NUMERIC 数值
INTEGER 整型
REAL 小数
NONE 无类型
* 查询可否发送select ?
*/
public void CreateTable() {
try {
db.execSQL("CREATE TABLE t_user (" +
"_ID INTEGER PRIMARY KEY autoincrement,"
+ "NAME TEXT"
+ ");");
Log.v(TAG,"Create Table t_user ok");
} catch (Exception e) {
Log.v(TAG,"Create Table t_user err,table exists.");
}
}
/**
* 增加数据
* @param id
* @param uname
* @return
*/
public boolean save(String uname){
String sql="";
try{
sql="insert into t_user(NAME) values('"+uname+"')";
db.execSQL(sql);
Log.v(TAG,"insert Table t_user ok");
return true;

}catch(Exception e){
Log.v(TAG,"insert Table t_user err,sql: "+sql);
return false;
}
}
/**
* 查询所有记录
*
* @return Cursor 指向结果记录的指针,类似于JDBC 的 ResultSet
*/
public Cursor loadAll(){

Cursor cur=db.query("t_user",new String[]{"_ID","NAME"},null,null);

return cur;
}
public void close(){
db.close();
}
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/txtInput"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="增加"
/>
<Button
android:id="@+id/btnViewAll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="查询所有"
/>
<TextView
android:id="@+id/viewAll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"

/>
</LinearLayout>

结果如图所示:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读