- 浏览: 65246 次
最新评论
作用:
从文本中获取信息存放在数据库中。
SQLActivity主要负责界面控制,六个按钮的摆放以及点击效果。
package com.example.sql; import java.io.IOException; import android.app.Activity; import android.content.ContentValues; import android.os.Bundle; import android.util.Log; import android.view.View; public class SQLActivity extends Activity { private Database db; private final static String FILE_NAME = "data.txt"; private final static String TXT_TITLE = "标题"; private final static String TXT_CONTENT = "内容"; private final static String TXT_TYPE = "类别"; private final static String TXT_LINK = "链接"; private final static String TXT_ENDSIGN = "#@#"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sql); db = new Database(getApplicationContext()); // 创建数据库 findViewById(R.id.create).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub db.create(); } }); // 插入数据 findViewById(R.id.insert).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub GetTxtContentForAssets getTxtContentForAssets = new GetTxtContentForAssets(); String txtContent = null; try { txtContent = getTxtContentForAssets.getAllContent(FILE_NAME, getApplicationContext()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (txtContent != null){ String title = new String(); String content = new String(); String type = new String(); String link = new String(); while (txtContent.indexOf(TXT_TITLE) != -1){ title = getTxtContentForAssets.getStringFromXtoY(txtContent, TXT_TITLE, TXT_ENDSIGN); txtContent = getTxtContentForAssets.getRemainString(txtContent,TXT_ENDSIGN); content = getTxtContentForAssets.getStringFromXtoY(txtContent, TXT_CONTENT,TXT_ENDSIGN); txtContent = getTxtContentForAssets.getRemainString(txtContent,TXT_ENDSIGN); type = getTxtContentForAssets.getStringFromXtoY(txtContent, TXT_TYPE,TXT_ENDSIGN); txtContent = getTxtContentForAssets.getRemainString(txtContent,TXT_ENDSIGN); link = getTxtContentForAssets.getStringFromXtoY(txtContent, TXT_LINK,TXT_ENDSIGN); txtContent = getTxtContentForAssets.getRemainString(txtContent,TXT_ENDSIGN); // 插入数据title,content,type和link到数据库中。 db.insert(title,content,type,link); Log.i("database", "insert"); } } } }); // 查询数据 findViewById(R.id.query).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub db.queryAll(); } }); // 删除数据库 findViewById(R.id.delete).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub db.delete(); } }); // 修改数据库信息 findViewById(R.id.update).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub db.update(); } }); // 删除行 findViewById(R.id.deleline).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub db.deleteline(); } }); } }
Database类主要完成和数据库相关的各种操作,比如数据库的创建、增删改查等操作,具体看注释。
package com.example.sql; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; public class Database { private Context mContext; private SQLiteDatabase db; private DatabaseSQLiteOpenHelper sqLiteOpenHelper; private final static String DATABASE_NAME = "legerdemain.db"; private final static int DATABASE_VERSION = 1; public Database(Context context) { // TODO Auto-generated constructor stub mContext = context; } // 创建数据库 public void create() { // TODO Auto-generated method stub sqLiteOpenHelper = new DatabaseSQLiteOpenHelper(mContext, DATABASE_NAME, null, DATABASE_VERSION); db = sqLiteOpenHelper.getReadableDatabase(); db.close(); } /** * 插入元组到数据库中,各个参数是元组内容 * @param title * @param content * @param type * @param link */ public void insert(String title, String content, String type, String link) { // TODO Auto-generated method stub sqLiteOpenHelper = new DatabaseSQLiteOpenHelper(mContext, DATABASE_NAME, null, DATABASE_VERSION); db = sqLiteOpenHelper.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put(sqLiteOpenHelper.TABLE_TITLE, title); cv.put(sqLiteOpenHelper.TABLE_CONTENT, content); cv.put(sqLiteOpenHelper.TABLE_TYPE, type); cv.put(sqLiteOpenHelper.TABLE_LINK, link); db.insert(sqLiteOpenHelper.TABLE_NAME, null, cv); db.close(); } /** * 查询所有数据 */ public void queryAll() { // TODO Auto-generated method stub sqLiteOpenHelper = new DatabaseSQLiteOpenHelper(mContext, DATABASE_NAME, null, DATABASE_VERSION); db = sqLiteOpenHelper.getReadableDatabase(); Cursor cursor = db.query(sqLiteOpenHelper.TABLE_NAME, new String[]{sqLiteOpenHelper.TABLE_ID, sqLiteOpenHelper.TABLE_TITLE,sqLiteOpenHelper.TABLE_CONTENT,sqLiteOpenHelper.TABLE_TYPE,sqLiteOpenHelper.TABLE_LINK}, null, null, null, null, null); String title = null; String content = null; String type = null; String link = null; while (cursor.moveToNext()){ title = cursor.getString(cursor.getColumnIndex(sqLiteOpenHelper.TABLE_TITLE)); content = cursor.getString(cursor.getColumnIndex(sqLiteOpenHelper.TABLE_CONTENT)); type = cursor.getString(cursor.getColumnIndex(sqLiteOpenHelper.TABLE_TYPE)); link = cursor.getString(cursor.getColumnIndex(sqLiteOpenHelper.TABLE_LINK)); Log.i("database","title="+title+"content="+content+"type="+type+"link="+link); } db.close(); } /** * 查询title列表中的所有包含keyword的数据 * @param keyword */ public void queryTitle(String keyword) { // TODO Auto-generated method stub sqLiteOpenHelper = new DatabaseSQLiteOpenHelper(mContext, DATABASE_NAME, null, DATABASE_VERSION); db = sqLiteOpenHelper.getReadableDatabase(); Cursor cursor = db.rawQuery("select * from "+sqLiteOpenHelper.TABLE_NAME+" where "+sqLiteOpenHelper.TABLE_TITLE+" LIKE '%"+keyword+"%'", null); String title = null; String content = null; String type = null; String link = null; while (cursor.moveToNext()){ title = cursor.getString(cursor.getColumnIndex(sqLiteOpenHelper.TABLE_TITLE)); content = cursor.getString(cursor.getColumnIndex(sqLiteOpenHelper.TABLE_CONTENT)); type = cursor.getString(cursor.getColumnIndex(sqLiteOpenHelper.TABLE_TYPE)); link = cursor.getString(cursor.getColumnIndex(sqLiteOpenHelper.TABLE_LINK)); Log.i("database","title="+title+"content="+content+"type="+type+"link="+link); } db.close(); } /** * 删除数据库 */ public void delete() { // TODO Auto-generated method stub if (mContext.deleteDatabase(DATABASE_NAME)){ Log.i("database", "deleteDatabase"); } } /** * 修改:将title中含有“天”的title修改为Fred */ public void update() { // TODO Auto-generated method stub sqLiteOpenHelper = new DatabaseSQLiteOpenHelper(mContext, DATABASE_NAME, null, DATABASE_VERSION); db = sqLiteOpenHelper.getWritableDatabase(); String sql = "UPDATE "+sqLiteOpenHelper.TABLE_NAME+" SET "+sqLiteOpenHelper.TABLE_TITLE+" = 'Fred' WHERE "+sqLiteOpenHelper.TABLE_TITLE+" LIKE '%天%'" ; db.execSQL(sql); db.close(); } /** * 删除title中含有“F”的一行 */ public void deleteline() { // TODO Auto-generated method stub sqLiteOpenHelper = new DatabaseSQLiteOpenHelper(mContext, DATABASE_NAME, null, DATABASE_VERSION); db = sqLiteOpenHelper.getWritableDatabase(); String sql = "DELETE FROM "+sqLiteOpenHelper.TABLE_NAME+" WHERE "+sqLiteOpenHelper.TABLE_TITLE+" LIKE '%F%'"; db.execSQL(sql); db.close(); } }
从Asset文件夹中获取信息存入数据库中,作为Insert的一个依赖存在。
package com.example.sql; import java.io.IOException; import java.io.InputStream; import android.content.Context; import android.content.res.AssetManager; public class GetTxtContentForAssets { private final static String ENCODING = "GB2312"; /** * 读取文件中的所有内容 * @param fileName the fileName which in Asset folder that need to be read * @param context * @return the contents of file * @throws IOException */ public String getAllContent(String fileName,Context context) throws IOException{ AssetManager aManager = context.getAssets(); InputStream file = aManager.open(fileName); int length = file.available(); byte[] buff = new byte[length]; file.read(buff); file.close(); String content = new String(buff, ENCODING); return content; } /** * 截取字符串中以startsign和stopsign之中的一段 * @param string String which is pending on * @param startsign * @param stopsign * @return the string which is pending over */ public String getStringFromXtoY(String string, String startsign, String stopsign) { // TODO Auto-generated method stub int start = string.indexOf(startsign)+startsign.length(); int stop = string.indexOf(stopsign); return string.substring(start, stop); } /** * 取结束符合之后的一段 * @param string * @param Endsign * @return the string which is after endsign */ public String getRemainString(String string, String Endsign) { // TODO Auto-generated method stub int len = string.indexOf(Endsign)+Endsign.length(); return string.substring(len); } }
package com.example.sql; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class DatabaseSQLiteOpenHelper extends SQLiteOpenHelper{ public final static String TABLE_NAME = "legerdemain"; public final static String TABLE_ID = "ID"; public final static String TABLE_TITLE = "TITLE"; public final static String TABLE_CONTENT = "CONTENT"; public final static String TABLE_TYPE = "TYPE"; public final static String TABLE_LINK = "LINK"; public DatabaseSQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL("Create table "+TABLE_NAME+" ("+TABLE_ID+" integer primary key autoincrement," +TABLE_TITLE+" text,"+TABLE_CONTENT+" text,"+TABLE_TYPE+" text,"+TABLE_LINK+" text);"); Log.i("database", "CreatDatebase"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }
- SQL.rar (664.4 KB)
- 下载次数: 3
发表评论
-
AlarmManager定时器
2013-04-15 18:19 3862首先,获取系统服务: private Alar ... -
google play 提交apk说:服务器无法处理app
2012-09-25 16:16 1507检查manifest里面的的资源文件 -
Widget分区域点击
2012-09-25 10:24 781<?xml version="1.0" ... -
Widget分区域点击
2012-09-25 10:23 1288Widget配置文件: package com. ... -
检查packageName对应app是否安装
2012-08-24 10:46 1200// 检查packageName对应app是否安装 ... -
监听WebView显示结束(回调函数实现)
2012-08-15 11:31 10295webView只提供了一个监听加载完毕的方法,但是没有提供监听 ... -
Intent跳转去网络设置页面
2012-08-14 23:50 2460public static void startNetw ... -
TextView显示html内容
2012-08-10 16:26 818TextView tv = (TextView) fin ... -
使用String资源
2012-08-06 16:06 738getResources().getString(R.s ... -
Intent到gmail发邮件
2012-08-06 15:31 833Intent returnIt = new Intent ... -
导入外部数据库
2012-07-31 10:51 1605package com.example.imputdat ... -
读入大文本信息方法
2012-07-31 09:52 650BufferedReader br = new Bu ... -
所有的R文件都消失
2012-07-26 18:05 769问题描述: 添加了一个资源文件,然后所有引用到R资源都出错 ... -
String和int互化
2012-07-26 10:41 614String化为Int Integer.parseInt(S ... -
键盘顶起内容
2012-07-24 11:26 902android:windowSoftInputMode= ... -
在普通类中使用getResources()
2012-07-24 11:26 1137context可以作为成员变量传入类中,然后通过context ... -
关于Intent
2012-07-24 11:26 720Intent常见于在页面间的跳转。常见语句为: Intent ... -
自定义控件
2012-07-24 11:26 544需要添加类似 public SurfaceV(Context ... -
Invalid project description
2012-07-25 19:43 942导入不同版本的eclipse制作的项目,可能会产生Invali ... -
完全退出应用(SharedPreferences和onResume()实现)
2012-07-25 19:43 1046问题:A.class Intent跳转到B.class,由于某 ...
相关推荐
“易语言3.6版外部数据库使用.chm”是帮助文档,详细解释了易语言3.6版本中关于外部数据库的使用方法和示例。CHM文件是一种常见的Windows帮助文件格式,包含了丰富的文本、图像和示例,是你深入学习易语言数据库操作...
Android Ormlite数据库使用,包含基本的增删改差操作,比起SQLite更加简单,没有频繁的数据库,查询语言,不了解的小伙伴可以先了解一下Ormlite数据库的简介http://www.jianshu.com/p/05782b598cf0
Wind数据库使用说明,万得Wind数据库操作攻略,详细解读+视频讲解 Exce 插件使用说明 wind 殷票量化分析美使用说明 基会类使用说明 明星功能使用说明 期权指南使用说明 视频教程 数据关交易接囗使用说明 算法使用...
数据集使用mit-hib数据库 使用2维卷积神经网络实现八种心率不齐的诊断 数据集使用mit-hib数据库 使用2维卷积神经网络实现八种心率不齐的诊断 数据集使用mit-hib数据库 使用2维卷积神经网络实现八种心率不齐的诊断 ...
《VC 6.0的数据库使用与操作》这篇文章主要介绍了如何在Visual C++ 6.0环境下进行数据库的使用和操作,特别适合初学者或希望了解数据库集成开发的IT专业人士。文章提到了两种主要的方法,一种是建立Database Project...
维普数据库使用介绍维普数据库使用介绍
oracle数据库使用经验 oracle数据库使用经验 oracle数据库使用经验 oracle数据库使用经验
GEO数据库使用.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
SCI web of science 数据库使用指南 培训
- 性能监控:介绍如何使用神通数据库自带的性能监控工具,分析数据库的运行状况,找出性能瓶颈。 - 调优策略:提供一系列调优技巧,包括SQL查询优化、索引优化、内存和磁盘使用优化等。 - 高可用与容灾:讲解神通...
DB4O面向对象数据库使用指南
elasticsearch数据库使用案例
易语言源码超级列表框+数据库使用.rar 易语言源码超级列表框+数据库使用.rar 易语言源码超级列表框+数据库使用.rar 易语言源码超级列表框+数据库使用.rar 易语言源码超级列表框+数据库使用.rar 易语言源码超级...
wiley数据库使用方法
medline数据库使用说明
SCI数据库使用教程
UCI数据库使用说明
UpToDate数据库使用说明
广东电大试题全文数据库使用方法.doc
1. "成语数据库使用说明.docx" - 这个文档应该是对如何使用这个成语数据库的详细指导,可能包括了数据库的连接方法、查询示例以及在不同环境中导入数据的步骤。 2. "cy.sql" - 这很可能是SQL脚本文件,用于创建成语...