mysqlite数据库的使用简单介绍 前言
本文内容列表:
- 1.如何安装和使用sqlite数据库,因为看完之后不知道要不要安装。
- 2.如何使用sqlite数据库文件
- 3、您好,我们也想使用MY SQL来实现数据库的增删改查。
如何安装和使用sqlite数据库,因为看完之后不知道该不该安装
无需安装SQLite数据库。
使用sqlite程序生成数据库文件。比如test.db(文件名自己设置,扩展名没有要求)
当然你的程序必须支持sqlite,比如配置中设置了php。
然后就可以在程序中调用sqlite函数来操作这个文件了。
如何使用sqlite数据库文件
在我的几个 Android 应用程序中,我需要访问现有数据库。这些数据库往往很大,甚至超过了资产文件大约 1 MB 的限制。并且数据库必须在新版本中更新。我看了网上的一些文章,特别是StackOverflow,并做了一些实验,感觉下面的代码基本满足了我的需求。
主要思想是:
1。将数据库分解为多个资产文件。
2。如果数据库不存在,需要打开数据库,请重新将资源文件合并为数据库文件。
3。当数据库版本发生变化时,在onUpgrade()方法中删除数据库文件。
代码是这样的:
//数据库的默认路径
private static FinalString DB_PATH = "/data/data/com.mypackage.myapp/databases/";
private static FinalString DB_NAME = " mydb.db";
私有静态finalint DB_VERSION = 2;
私有静态finalString DB_SPLIT_NAME = "mydb.db.00";
私有静态finalint DB_SPLIT_COUNT = 3;private SQLiteDatabasem_database;
private final Contextm_context;
/**
* 构造函数
* 存储输入的用于访问应用程序资产和资源文件的上下文参数。
* @param context
*/
public MyDB(Contextcontext) {
super(context, DB_NAME, null, DB_VERSION);
this.m_context} public static MyDBopenDatabaseReadOnly(Context context) ) {
MyDB db = new MyDB(context);
try {
db.createDataBase();
} catch (Exception/♝ e) TODO 自动生成的 catch 块
e .printStackTrace();
}
db.openDataBase(SQLiteDatabase.OPEN_READONLY);
返回db;❀上下文上下文){
MyDB db = new MyDB(context);
尝试{
db.createDataBase();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
db.openDataBase ( SQLiteDatabase.OPEN_READWRITE);
return db;
}❀}❀/保存现有数据库。
*/
public voidcreateDataBase() 抛出 IOException{
boolean dbExist =checkDataBase();
if (dbExist) {
/*
** 当你的数据库版本发生变化时,调用该方法可以保证调用onUpgrade()时,将
**传入写入的数据库中。
*/
SQLiteDatabase db =this.getWritableDatabase();
if (db != null) {
db.close();
}
}
} } checkDataBase();
if (!dbExist) {
你好,我们也想用MY SQL来实现数据库的增删改查
1。 ---数据库创建---
如果要对数据库进行增删改查,必须先创建数据库。 Android中的数据库使用sqlite。我们通过调用 SQLiteOpenHelper 类来创建数据库。的和可操作的。
[Java] 简单复印打印 看到了吗?请参阅代码中的代码片段派生到我的代码片段包 com.iigt.crud;
import android.content.Context;
import android.database.sqlite。 SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class MySqlite extends SQLiteOpenHelper {public MySqlite(Context context) {
//context:上下文,name:数据库文件名factory:用于创建游标对象,默认为null //version:数据库的版本号,从1开始,如果改变则调用onUpgrade方法。 4.0以后只能升级不能 super(Context, "info.db", null,1);
}
//第一次创建数据库时会调用oncreate方法;特别适合初始化表结构,必须执行sql语句; SQLiteDatabase db 可用于执行sql语句 @Override
public void onCreate(SQLiteDatabase db) { // 通过SQLiteDatabase执行sql语句创建表 db.execSQL("创建表 info(_id 整型主键自增, name varchar(20), Phone varchar(11))"); }
//只有数据库版本号发生变化时才执行onUpgrade;特别适合表结构的改变 @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //添加phone字段
//db.execSQL("alter table info add phone varchar( 11) ");}
}
2. ---操作类---
定义了数据库之后,我们就定义我们使用的有一个函数,它是在数据库中存储数据的,我们通常称之为DAO函数。不过,在定义DAO函数之前,必须先定义一个bean类,否则你想要操作的数据将无法获得。下面是bean和DAO。
[java] plain copy print?查看 CODE 上的代码片段 派生到我的代码片段包 com.iigt.bean;
public class InfoBean {
public String name;
public String Phone;
}
DAO的代码如下:
[Java] 看到简单的copy print了吗?查看代码片段 派生到我的代码片段包 com.iigt.dao;
import android.content .Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;导入 com.iigt.bean.InfoBean;
导入 com.iigt.crud.MySqlite;
公共类 InfoDao {
private MySqlite mySqliteOpenHelper;
public InfoDao(Context context){
//创建Helper类对象
mySqliteOpenHelper = new MySqlite(context);}
//调用方法 getReadableDatabase '创建数据库 SQLiteDatabase db = mySqliteOpenHelper.getWritableDatabase(); //sql:sql语句,bindArgs:sql语句中占位符的值 db.execSQL("Info(name,phone)values(?,?);", new Object[]{bean.name,bean .phone } );//关闭数据库对象
db.close();
}
public void del(Stringname){
SQLiteDatabase db = mySqliteOpenHelper.c(ReadableQdb.exe); ("从信息中删除 name=?;", new Object[]{name});db.close();
}
public void update(InfoBean Bean){
SQLiteDatabase db = mySqliteOpenHelper. getReadableDatabase();db.execSQL("更新信息集phone=? where name=?;", new Object[]{bean.phone,bean .name});db.close();
}
public void query(String name){
//执行Sql语句需要sqliteDatabase对象
//调用getReadableDatabase方法创建数据库 SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase(); //sql:sql语句,SelectionArgs:查询条件占位符值,返回游标对象 Cursorcursor = db.rawQuery("select _id, name,phone from info where name = ?;", new String[] { name }); //解析游标中的数据
if(cursor != nullcursor.getCount() 0){//判断游标中是否有数据 //循环结果集,获取每一行的内容
while(cursor.moveToNext()){ //条件光标能否定位到下一行 //获取数据
int id =cursor.getInt(0);
String name_str =cursor.getString( 1);
String 电话=cursor.getString(2);
System.out.println("_id:"+id+";姓名:"+name_str+";电话:"+电话);}
cursor.close();//关闭结果集
}
//关闭数据库对象
db.close();
}
}
3. --- 操作接口 ---
定义操作数据库的操作接口。操作界面包括添加、删除、修改、查询。 2"
android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical_margin" 工具:上下文=".MainActivity"
按钮
android:id="@+id/bt_add"
android:layout_width="fill_parent"
android:layout_height="wrap_content"android :text="@字符串/添加" /
按钮
android:id="@+id/bt_del"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text= “@string/del”/
按钮
android:id="@+id/bt_update"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android: text="@string/update" /
按钮
android:id="@+id/bt_query"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/query" /
/LinearLayout
IV. ---主要功能---
(1) 创建布局界面,包含“添加、删除、修改检查”4个控件。
(2)获取这四个控件,根据每个控件的ID判断点击的是哪个事件(3)如果判断点击的是add事件,则应该添加,所以必须调用add函数(4)必填首先创建一个javabean及其操作类DAO(5)dao是向数据库添加数据,创建并初始化数据库(6)在dao类中定义对数据库的增、删、改、查询方法【Java】】参见“简单复印打印”?查看代码片段:派生到我的代码片段包 com.iigt.crud;
导入 android.app.Activity;
导入 android.content.Context;
导入 android.database。 sqlite.SQLiteDatabase;导入android.os.Bundle;
导入android.view.View;
导入android.view.View.OnClickListener;导入com.iigt.bean.InfoBean;
导入。道.infodao;
导入com.adddlatabase。 *;
prublic class Inactivity extends Activity Implicistener(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = this;
//创建Helper类对象
Mysqlite mysqliteophelohelpere = new mysqlite(mcontext) 调用可怕的 datdatatable 方法) .setonclickere(this) ;findViewById(R.id.bt_del).setOnClickListener(this);findViewById(R.id.bt_update).setOnClickListener(this);findViewById( R.id.bt_query).setOnClickListener(this);}
@Override
public void onClick(View v) {
InfoDao infoDao = new InfoDao(mContext);//创建Dao对象用于加法、删除、修改、请求切换(v.getId()) {
case R.id.bt_add :
InfoBean bean = new InfoBean();
bean.name = "张三";
bean.phone = "110";
infoDano.add(bean );
InfoBean bean1 = new InfoBean();
bean1.name = "李思";
bean1.phone = 120";
infoDao.add(bean1);;
case R. id.bt_del:
infoDao.del("张三");
infoDao.del("李四" );
break;
case R.. bt_update:
InfoBean bean2 = new InfoBean();
bean2.name = "张三";
bean2.phone = "119";
infoDao.update(bean2); ;
案例 R. id.bt_query:
infoDao.query("张三");
infoDao.query("李四");
break;
默认:
break;
}}

版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
