当前位置: 首页 > news >正文

四川省住房和城镇建设官方网站轩与巧之歌wordpress

四川省住房和城镇建设官方网站,轩与巧之歌wordpress,网站怎么做qq微信登陆,广州短视频制作公司程序的最主要的功能在于对数据进行操作#xff0c;通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的#xff0c;Android中内置了小巧轻便#xff0c;功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数据库来实现一…程序的最主要的功能在于对数据进行操作通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的Android中内置了小巧轻便功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数据库来实现一些需求的吧仍然以一个小例子开始在创建Android项目之前我们应该想一下我们要定义的数据库的相关信息和里面的表格的相关信息为了日后数据库的更新更加方便 我们可以用一个专门的类保存数据库的相关信息以后如果要更新数据库的话只需要该动这个类就行了。这样使得日后的操作更加方便。新建一个Android工程在Src文件夹下新建一个包com.example.databaseHelper在这个包中创建两个类首先我们来看第一个类DatabaseStatic.Javapackage com.example.databaseHelper;public class DatabaseStatic {public final static String DATABASE_NAME BookStore.db;public final static int DATABASE_VERSION 1;public final static String TABLE_NAME book;public final static String BOOK_NAME bookName;public final static String ID _id;public final static String AUTHOR author;public final static String PRICE price;public final static String DATE sellData;}这个类中定义了数据库名称、版本、还有里面有一个名为“book”的表的相关信息实现我们上面的意图接下来是这个包里面的另外一个类MyHelper.java:package com.example.databaseHelper;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;import android.widget.Toast;/** 在这个类的构造函数里面我们调用了父类的构造方法用来创建数据库文* 件第二个构造方法只是为了方便构造(不用些那么多的参数)* 这个类继承了 SQLiteOpenHelper 类并且重写了父类里面的onCreate方法和 onUpgrade方法* onCreate方法当数据库文件不存在的时候会被调用来创建一个新的数* 据库文件(不懂的小伙伴可以百度一下)*/public class MyHelper extends SQLiteOpenHelper{public static String CREATE_TABLE create table DatabaseStatic.TABLE_NAME ( DatabaseStatic.BOOK_NAME varchar(30), DatabaseStatic.ID Integer primary key autoincrement, DatabaseStatic.AUTHOR varchar(20) not null, DatabaseStatic.PRICE real); // 用于创建表的SQL语句private Context myContext null;public MyHelper(Context context, String name,CursorFactory factory, int version) {super(context, DatabaseStatic.DATABASE_NAME, null, DatabaseStatic.DATABASE_VERSION);}public MyHelper(Context context){super(context, DatabaseStatic.DATABASE_NAME, null, DatabaseStatic.DATABASE_VERSION);myContext context;}Overridepublic void onCreate(SQLiteDatabase db) {Log.i(UseDatabase, 创建数据库);Toast.makeText(myContext, 创建数据库, Toast.LENGTH_SHORT).show();db.execSQL(CREATE_TABLE);}Overridepublic void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {}}当要获取数据库对象时(通过SQLiteOPenHelper中自带的方法getWriteableDatabase或者getReadableDatabase)如果数据库文件不存在这个类里面的onCreate方法会被调用来创建一个新的数据库文件如果数据库文件已经存在那么onCreate方法将不会被调用activity_main.xml:xmlns:toolshttp://schemas.android.com/toolsandroid:idid/mainLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroid:gravitycenter_horizontaltools:context.MainActivity android:idid/buttonCreateDatabaseandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text创建数据库 /android:idid/buttonInsertDatabaseandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text插入数据/android:idid/buttonUpdateDatabaseandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text更新数据/android:idid/buttonDeleteDatabaseandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text删除数据/android:idid/buttonQueryDatabaseandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text显示数据库中 Book表中的所有数据/一段布局代码主要是5个按钮对应5中对数据库的操作创建数据库、插入数据、更新数据、删除数据、显示(查询)数据。那么最后是MainActivity.java:import com.example.databaseHelper.DatabaseStatic;import com.example.databaseHelper.MyHelper;import android.os.Bundle;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.graphics.Color;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {private MyHelper myHelper null;private Button button null;private SQLiteDatabase database null;private static int bookSum 0;TextView textView null;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView new TextView(this);LinearLayout layout (LinearLayout) findViewById(R.id.mainLayout);layout.addView(textView);button (Button) findViewById(R.id.buttonCreateDatabase);button.setOnClickListener(listener);button (Button) findViewById(R.id.buttonInsertDatabase);button.setOnClickListener(listener);button (Button) findViewById(R.id.buttonUpdateDatabase);button.setOnClickListener(listener);button (Button) findViewById(R.id.buttonDeleteDatabase);button.setOnClickListener(listener);button (Button) findViewById(R.id.buttonQueryDatabase);button.setOnClickListener(listener);}private View.OnClickListener listener new View.OnClickListener() {Overridepublic void onClick(View v) {switch(v.getId()){case R.id.buttonCreateDatabase:createDatabase();break;case R.id.buttonInsertDatabase:insertDatabase();break;case R.id.buttonUpdateDatabase:updateDatabase();break;case R.id.buttonDeleteDatabase:deleteDatabase();break;case R.id.buttonQueryDatabase:searchDatabase();break;}}};private void createDatabase() // 创建或者打开数据库{myHelper new MyHelper(this);/** 调用getWritabelDatabase方法或者* getReadableDatabase方法时如果数据库文* 件中不存在(注意一个数据库中可以存在多个表格)* 那么会回调MyHelper类的onCreate方法新建一个数据库文* 件并且在这个数据库文件中新建一* 个book表格*/myHelper.getWritableDatabase();}private void insertDatabase() // 向数据库中插入新数据{if(myHelper null){myHelper new MyHelper(this);}database myHelper.getWritableDatabase();ContentValues cV new ContentValues();cV.put(DatabaseStatic.BOOK_NAME, C Language);cV.put(DatabaseStatic.ID, bookSum);cV.put(DatabaseStatic.AUTHOR, zhidian);cV.put(DatabaseStatic.PRICE, 42.6);/** 这个方法是留给不熟悉SQL语句的小伙伴用的Android把* SQLite的插入语句封装了起来* 通过 ContentValues 类的对象来保存数据库中的数据* 于HashMap*/database.insert(DatabaseStatic.TABLE_NAME, null, cV);/** 对应的SQL语句* database.execSQL(insert into DatabaseStatic.TABLENAME values(?, ?, ?, ?),* new Object[]{C Language, bookSum, zhidian, 42.6});* 或者是这个* database.execSQL(insert into DatabaseStatic.TABLENAME ( * DatabaseStatic.BOOKNAME , DatabaseStatic.ID , * DatabaseStatic.AUTHOR , DatabaseStatic.PRICE * ) values(?, ?, ?, ?), new Object[]{C Language, bookSum, zhidian, 42.6});* 这里将 号理解成一个C语言里面的占位符然后通过 Object[] 数组中的内容补全下同* 参数中的 Object[] 数组是一个通用的数组里面的数据可以转换为任意类型的数据通过这个完成不同数据类型变量之间的储存*/Toast.makeText(this, 插入数据成功, Toast.LENGTH_SHORT).show();}private void updateDatabase() // 更新数据{if(myHelper null){myHelper new MyHelper(this);}database myHelper.getWritableDatabase();ContentValues cV new ContentValues();cV.put(DatabaseStatic.AUTHOR, xiaoming);/** 调用 update 方法将书名为C Language 的书作者更新为 xiaoming*/database.update(DatabaseStatic.TABLE_NAME, cV,DatabaseStatic.BOOK_NAME ?, new String[]{C Language});/** 对应的SQL语句* database.execSQL(update DatabaseStatic.TABLENAME set DatabaseStatic.AUTHOR * ? where DatabaseStatic.BOOKNAME ?, new String[]{xiaoming, C Language});*/Toast.makeText(this, 数据更新成功, Toast.LENGTH_SHORT).show();}private void deleteDatabase() // 数据库中删除数据{if(myHelper null){myHelper new MyHelper(this);}database myHelper.getWritableDatabase();/** 调用 delete 方法删除数据库中的数据* 对应的SQL语句* database.execSQL(delete from * DatabaseStatic.TABLE_NAME where * DatabaseStatic.BOOK_NAME ?, new* String[]{C Language});*/database.delete(DatabaseStatic.TABLE_NAME, DatabaseStatic.BOOK_NAME ? ,new String[]{C Language});Toast.makeText(this, 数据删除成功, Toast.LENGTH_SHORT).show();}private void searchDatabase() // 查询数据库中的数据{if(myHelper null){myHelper new MyHelper(this);}database myHelper.getWritableDatabase();/** 调用database的query方法第一个参数是要查询的表名* 后面的参数是一些查询的约束条件对应于SQL语句的一些参* 数 这里全为null代表查询表格中所有的数据* 查询的结果返回一个 Cursor对象* 对应的SQL语句* Cursor cursor database.rawQuery(select * from book, null);*/Cursor cursor database.query(DatabaseStatic.TABLE_NAME, null, null, null, null, null, null);StringBuilder str new StringBuilder();if(cursor.moveToFirst()) // 显示数据库的内容{for(; !cursor.isAfterLast(); cursor.moveToNext()) // 获取查询游标中的数据{str.append(cursor.getString(cursor.getColumnIndex(DatabaseStatic.ID)) );str.append(cursor.getString(cursor.getColumnIndex(DatabaseStatic.BOOK_NAME)) );str.append(cursor.getString(cursor.getColumnIndex(DatabaseStatic.AUTHOR)) );str.append(cursor.getString(cursor.getColumnIndex(DatabaseStatic.PRICE)) \n);}}cursor.close(); // 记得关闭游标对象if(str.toString().equals()){str.append(数据库为空);textView.setTextColor(Color.RED);}else{textView.setTextColor(Color.BLACK);}textView.setText(str.toString());}Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}}MainActivity.java里面主要是实现了5个按钮对应的操作SQLiteDatabase 类里面提供了对数据库表格进行插入、更新、删除、查询 的对应API用于给对SQL语句不熟悉的开发者使用当然我们还可以调用这个类里面的 execSQL 方法来直接执行SQL语句中的插入、更改、删除操作用rawQuery 方法来执行SQL语句的查询语句。Ok整个工程的项目视图(可能有些多余。。。)好了运行一下先点击“创建数据库”按钮程序中的数据库文件都储存在 /data/data//databases文件中运行cmd(windows系统)运行abd调试工具(如果没有将adb.exe加入环境变量中则需要写出adb.exe的完整路径)输入 adb shell再输入 cd /data/data/com.example.UseDataBase/databases进入对应储存文件目录再输入 ls 显示文件中的子文件目录接下来我们就可以对数据库文件进行操作了输入 sqlite3 数据库名称 就可以对数据库进行操作了输入 .table 来查看当前数据库文件中的表格目录 结果如下我们可以看到我们要创建的表格确实存在证明我们的代码确实创建了数据库文件和里面对应的表。而我们注意到这里面还有另外一个android_metadata表这个表是每个数据库文件都会自动生成的不需要管。接下来单击“插入数据”按钮之后 在控制台中输入 “select * from book;”这个是查询数据库文件中的数据的SQL语句不熟悉的小伙伴可以在网上查到一些教程我们可以看到我们确实在book这张表中成功的插入了一条新的数据。接下来单击“更新数据”按钮Ok确实把书名为“C Language”的书的作者改为了 “xiaowei”继续单击“删除”按钮使用 “select * from”语句查询表中的所有数据并没有看到有数据我们再单击一下“显示数据库中book表中的所有数据”按钮这样看来数据库中book表中的数据确实已经被我们删除了。这里提一下SQLite数据库操作的时候主要用到的数据类型整形Integer、字符数组varchar(10)、浮点数real、字符串文本text。当然SQLite还有很多的操作和支持的数据类型。最后给出一些常用的SQL语句1、创建数据库表create table 表名(参数1 数据类型 约数条件, 参数2 数据类型 约束条件…)例create table person(_id Integer primary key autoincrement, name varchar(20), sex varchar(5) not null, age Integer)2、插入数据insert into 表名(参数1, 参数2…) values(参数1的值, 参数2的值…)或者insert into 表名 values(参数1的值, 参数2的值)例insert into person(_id, name, sex, age) values(1, “指点”, “男”, 19)insert into person values(1, “指点”, “男”, 19)3、更新数据update 表名 set 参数1 值, 参数2 值… where 条件1 and 条件2 or 条件3…更新符合条件的所有数据where后面的条件用 “and” 或者 “or”连接例update person set _id 0, age 18 where _id 1 and age19 // “”符号代表“不等于”4、删除数据delete from 表名 where 条件1 and 条件2 or 条件3…删除符合条件的所有数据例delete from person where _id 0 and name “指点”前四个操作的SQL语句可用 execSQL 方法带入参数执行5、查询数据select 参数1, 参数2… from 表名 where 条件1 and 条件2…返回的是符合条件的所有的数据中的参数1、参数2…例select _id, name, sex from person where name “指点” or _id 1返回的是 1、“指点”、“男”注意查询操作的SQL语句要用 rawQuery方法执行详见代码Ok, 终于把SQLite 的基础操作总结完了。这里所说的只是SQLite操作的冰山一角日后还得多多学习。
http://www.pierceye.com/news/980829/

相关文章:

  • 自己做下载类网站家在深圳网页版
  • 建设银行网站个人客户传奇新服网
  • 河东手机网站建设工作服厂家联系方式
  • 站长工具seo综合查询搭建流程
  • 各省住房和城乡建设厅网站怎样租用个人网站空间
  • 深圳市南山区住房和建设局网站官网桂林两江四湖象山景区讲解导游词
  • 环保网站设计是什么柴沟堡做网站公司
  • 用php和mysql做网站wordpress怎么创建自己的博客
  • 网站建设制作设计珠海百度收录排名
  • 有没有做家具特卖的网站360建筑
  • 网站建设技术架构学校网站建设源代码
  • 无为教育网站网站平面设计培训
  • 广东省建筑网站信誉好的低价网站建设
  • 高端网站建设 杭州做效果图网站
  • 进贤县住房和城乡建设局网站短网址生成网站源码
  • 手机网站用二级目录做的弊端四川建设人员数据网站
  • 做网站什么类型好数据分析师培训需要多少钱
  • 建html5网站合作网站开发
  • 南通网站推广优化公司网站语言切换功能如何做
  • php网站开发案例论文临沂网站建设中企动力
  • 霸州做网站1766534168WordPress全局屏蔽谷歌
  • 织梦做的网站被黑了北京互联网排名
  • 专业seo整站优化专业建站教程
  • 网站建设合同注意点什么网站可以接设计方案
  • 青岛建设公司网站费用建网站的流程和费用
  • 徐州cms模板建站液压电机东莞网站建设
  • 阿里巴巴国际站运营工作内容北京软件开发公司排行榜最新
  • 电子商务网站的开发流程包括泉州seo建站
  • 微信h5商城网站开发米拓模板网站建设
  • 品牌网站设计案例wordpress 实例