精华内容
下载资源
问答
  • 【Android】SQLite数据库基本用法详解(极简洁)

    万次阅读 多人点赞 2018-06-27 21:43:22
    Android操作SQLite数据库(极简洁,极易懂) 本篇源码地址: https://github.com/littlecurl/AppProjects 源代码里面有详细注释,切记要修改一下gradle的版本号为本地gradle版本号,否则AndroidStduio会自行下载...

        Android操作SQLite数据库(极简洁,极易懂)


    终于,尽管走下去,不必逗留着......

             我终于录视频了:《【Android】登录注册(简洁版)》

             —— 赞美无风险,吐槽别谨慎。


     

    本篇源码地址:

    https://github.com/littlecurl/AppProjects

    源代码里面有详细注释,切记要修改一下gradle的版本号为本地gradle版本号,否则AndroidStduio会自行下载,浪费时间。


    一、成品效果图

            

     

     

    Android操作数据库原理阐述

         

          既然是要操作数据库,那么首先我们得选一款数据库,因为这个世界上,现存数据库种类很多。能随口就说上来的有,比如:Oracle、MySQL、SQLSever、KingBase,这四个是我随口就能说出来的,其他的像NoSQL、DB2......这些都是我得想一会才能说出来的,那么Android选的这款数据库,是我之前听都没听说过的一款,SQLite。发音是:[sk'laɪt] ,塞克赖特。当然,不是说Android数据库只能是SQLite,其它的也有办法实现,只不过,AndroidSDK中自带的是SQLite。

            铺垫到此为止,下面写正文。

     

            Android 提供的 SQLiteOpenHelper.java 是一个抽象类。那么我们要使用它,必须自己写一个类来继承它,为了达到见名知意的目的习惯上,我们创建的都是DatabaseHelper.java或者简写DBHelper.java,这个无所谓,你创建成1234.java都行。

            这一行规定死了,只能是这样的:

    public class DatabaseHelper extends SQLiteOpenHelper{

           接下来需要写一个带全部参数的DatabaseHelper类的构造函数,以后生成数据库对象的时候要用到:

    //带全部参数的构造函数,此构造函数必不可少
        public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {
            super(context, name, factory, version);
        }

            构造函数完事之后,写继承的抽象类SQLiteOpenHelper中的两个抽象方法:

        @Override
        public void onCreate(SQLiteDatabase db) {
            //创建数据库sql语句 并 执行
            String sql = "create table user(name varchar(20))";
            db.execSQL(sql);
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
        }

            上面的代码有两个问题,问题1.为什么onUpgrade()方法是空的?答案:因为它是抽象方法,必须被继承,但我为了达到极简的目的又没有用到它,一方面必须重写,一方面没有用到,所以就是一个空方法在这摆着样子了。问题2.为什么只重写这两个方法,其他的方法呢?答案:因为SQLiteOpenHelper.java中,只有这两个方法是抽象方法,你不信?我给你看看源码。(在AndroidStudio中我们按住Ctrl同时鼠标单击SQLiteOpenHelper就能进入它的源码中,在源码界面按住Ctrl+F 就能调出搜索框,输入abstract,点击向下箭头↓ 查找匹配项)

            到此为止,我们自己创建的DatabaseHelper.java所有代码就已经写完了。

            接下来看MainActivity.java文件中的代码,其中只有两部分代码。

    第一句代码中,创建Activity时会自动生成

    public class MainActivity extends AppCompatActivity

    在后面加上 下面这句,就能把onClick()方法写到onCreate()方法之外了

    implements OnClickListener

    MainActivity.java中第一部分代码:     

    创建Activity时的代码即onCreate()方法,要我们自己写的就两件事:

    1.根据Layout按钮id生成Java按钮对象

      就像这样:Button insert = (Button)findViewById(R.id.insert);

    2.为所有Java按钮对象设置监听器         

       就像这样:insert.setOnClickListener(this);

     

    MainActivity.java中第二部分代码:          

    响应屏幕点击时的代码即onClick()方法,我们需要写三件事:

    1.生成EditText对象,用来获取文本输入框中用户输入的内容

       就像这样:EditText insert_edittext = (EditText)findViewById(R.id.insert_edittext);

    2.创建数据库,这里我们给数据库起名为“test_db”,数据库版本号为1,代码如下:

            //依靠DatabaseHelper带全部参数的构造函数创建数据库
            DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_db",null,1);
            SQLiteDatabase db = dbHelper.getWritableDatabase();

    3.响应增、删、改、查四个按钮点击时触发的操作

    ①增:插入数据,首先需要new一个ContentValues,内容值对象。

           所谓的内容值,就是一个K,V 键值对,K指明字段名称即列名称,V指明字段值,即单元格内容。然后将这个键值对放到ContentValues的对象values里面,再把携带着键值对的对象values插入user表中,代码如下:

                //插入数据按钮
                case R.id.insert:
                    //创建存放数据的ContentValues对象
                    ContentValues values = new ContentValues();
                    values.put("name",insert_data);
                    //数据库执行插入命令
                    db.insert("user", null, values);
                    break;
    
    

    ②删:删除数据,这里不需要生成ContentValues对象,直接从表user中delete符合要求的内容即可,代码如下:

                //删除数据按钮
                case R.id.delete:
                    db.delete("user", "name=?", new String[]{delete_data});
                    break;

    ③改:更新数据,这里和插入数据类似,需要new一个ContentValues对象,然后放入数据,执行update,代码如下:

                //更新数据按钮
                case R.id.update:
                    ContentValues values2 = new ContentValues();
                    values2.put("name", update_after_data);
                    db.update("user", values2, "name = ?", new String[]{update_before_data});
                    break;

    ④查:查询全部数据,这里使用了Cursor游标进行查询,游历数据同时,把数据用换行符\n连接起来,再把所有数据展示到文本显示框内,代码如下:

                //查询全部按钮
                case R.id.query:
                    //创建游标对象
                    Cursor cursor = db.query("user", new String[]{"name"}, null, null, null, null, null);
                    //利用游标遍历所有数据对象
                    //为了显示全部,把所有对象连接起来,放到TextView中
                    String textview_data = "";
                    while(cursor.moveToNext()){
                        String name = cursor.getString(cursor.getColumnIndex("name"));
                        textview_data = textview_data + "\n" + name;
                    }
                    textview.setText(textview_data);
                    // 关闭游标,释放资源
                    cursor.close();
                    break;
       

     

     

     

    参考文章

     

     

    1.Android开发-设置监听器的四种方法:点击打开链接


    2.Android之SQLite数据库的使用:点击打开链接


    3.常用十六进制颜色对照表代码查询:点击打开链接

     

    .


    看完如果觉得不错,留个赞再走。


    .

     

     

     

     

     

     

     

     

     

     

    展开全文
  • C#连接SQLite 数据库、C#修改SQLite数据库的密码。

    使用C# 连接本地 SQLIte 数据库。

    1、首先添加引用:System.Data.SQLite.dll。

    2、程序中添加命名空间:System.Data.SQLite。

    3、代码如下:


    //SQLite 文件的完全路径。
                string dataBasePath = string.Format("{0}\\dataBase.db", Application.StartupPath);
    
                //SQLite 文件的密码。
                string password= null;
    
                //SQLite 数据库的连接字符串
                string sqliteConnnectionString=null;
    
                if (password != null)   //数据数据库有密码的话,需要在连接字符串后面加上密码信息。
                    sqliteConnnectionString = string.Format("Data Source={0};password={1}", dataBasePath, password);
                else
                    sqliteConnnectionString = string.Format("Data Source={0}", dataBasePath);
    
                DataTable dt = new DataTable();
                SQLiteConnection cnn = new SQLiteConnection(sqliteConnnectionString);
                cnn.Open();
                SQLiteDataAdapter sqliteAdapter = new SQLiteDataAdapter("select * from test", cnn);
                sqliteAdapter.Fill(dt);
    
    
                修改数据库的密码
                //cnn.ChangePassword("newpassword");
    
                cnn.Close();






    展开全文
  • 1.创建、打开数据库 sqlite3 *.db 功能: 当*.db文件不存在时,sqlite3会创建并打开数据库文件。 当*.db文件存在时,sqlite3会打开数据库文件。 2、退出数据库命令: .quit or .exit
  • JS操作sqlite数据库

    万次阅读 2015-08-26 15:20:10
    JS操作SQLite数据库0.问题的由来 一直非常讨厌MySql等等体积庞大的数据库,在项目里都是尽可能用SQLite数据库 一个本地项目同时需要内网上能够简单的访问部分信息,因此涉及到JavaScript访问SQLite的问题

    ##JS操作SQLite数据库

    ###0.问题的由来

    • 一直非常讨厌MySql等等体积庞大的数据库,在项目里都是尽可能用SQLite数据库

    • 一个本地项目同时需要内网上能够简单的访问部分信息,因此涉及到JavaScript访问SQLite的问题

    ###1.问题的解决

    ####1.1sql.js库

    有伟大的github在,当然不用自己写数据库访问库了。sql.js库是一个用Emscripten(别问我这是什么,我也不知道)从c++转译过来的访问sqlite3数据库的JS库,支持到最新的3.8.7.4版本的sqlite3.该库使用的时候只需引用单一的文件便可实现功能,完全脱离sqlite。

    ####1.2开发环境

    1.EverEdit(推荐一下这个国产编辑器) 64bit

    2.html+JavaScript+css+sql.js

    3.准备一个sqlite的数据库文件,参考1 ,2

    4.SQLiteSpy 软件

    ####1.3主要代码

    
    <!DOCTYPE html>
    
    <html>
    
    	<head>
    
    		<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
    
    		<script type="text/javascript" src="sql.js"></script>
    
    	</head>
    
    	<body>
    
    		<button name="test" type="button" value="val" onclick="save()">Button Text</button>
    
    		<input id="uploadInput" type="file" onchange="getfile()">
    
    	</body>
    
    	<script>
    
    		function save() {
    
    			
    
    			//Create the database
    
    			var db = new window.SQL.Database();
    
    			
    
    			db.run("CREATE TABLE test (列1 int, 列2 char);");			
    
    			db.run("INSERT INTO test VALUES (0,'hello');");
    
    			db.run("INSERT INTO test VALUES (1,'world');");
    
    			db.run("INSERT INTO test VALUES (55,'34534545');");
    
    			db.run("INSERT INTO test VALUES (166,'woteggrgrld');");
    
    			//save to local file
    
    			var data = db.export();
    
     			var arraybuff = data.buffer;
    
    			var blob = new Blob([arraybuff]);
    
    			var url = window.URL.createObjectURL(blob);
    
    			
    
    			var a = document.createElement("a");
    
    			a.href = url;			
    
          	  	a.download = 'test.db';
    
            	a.click();
    
            	window.URL.revokeObjectURL(url);
    
    			
    
    		}
    
    
    
    		function getfile() {
    
    			
    
         	 	var files = document.getElementById("uploadInput").files;//document.getElementById("uploadInput").value;
    
    			
    
    			var file = files[0];
    
         	 	var fr = new FileReader();
    
    			fr.onload = function(){
    
    					
    
            		var Uints = new Uint8Array(fr.result);
    
    					
    
            		var db = new window.SQL.Database(Uints);
    
            		
    
    				var res = db.exec("SELECT 列2 FROM test");
    
    				for(i=0;i<res[0].values.length;i++)
    
    				{//query values
    
    					console.log(res[0].values[i]+' ');
    
    				}	
    
    				
    
    
    
    			}
    
    			
    
    			fr.readAsArrayBuffer(file);
    
    			
    
    		}
    
    	</script>
    
    
    
    </html>
    
    

    ####1.4几点说明

    1.15-20行对数据库的操作是在内存中进行的,保存到本地的话需要执行21行后的代码。

    2.上面代码保存到本地不会覆盖原数据库。

    3.查询的时候res是一个保存了多行对象的数组。在代码文档里写到

    We have the following table, named test :

    id age name

    1 1 Ling

    2 18 Paul

    3 3 Markus

    We query it like that:

    
    var db = new SQL.Database();
    
    var res = db.exec("SELECT id FROM test; SELECT age,name FROM test;");
    
    
    
    

    res is now :

    [

       {columns: ['id'], values:[[1],[2],[3]]},
    
       {columns: ['age','name'], values:[[1,'Ling'],[18,'Paul'],[3,'Markus']]}
    

    ]

    给个赏吧

    如果我的文字解决了你的问题,请打个赏的,让我更有动力:)
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t9uAcIwK-1605511739012)(http://oza71xi0c.bkt.clouddn.com/18-9-3/34854473.jpg)]

    展开全文
  • 首先我们要知道,安卓是无法直接操作项目某个文件夹下的SQLite数据库的,因此我们首先得把数据库移到移动设备上/data/data/你的包名/databases文件夹下,安卓自己创建的数据库也是放在这个地方。 第一步,检查你项目...

    忙碌了一天,总算摸清了里面的套路与步骤,现总结如下:

    首先我们要知道,安卓是无法直接操作项目某个文件夹下的SQLite数据库的,因此我们首先得把数据库移到移动设备上/data/data/你的包名/databases文件夹下,安卓自己创建的数据库也是放在这个地方。

    第一步,检查你项目res目录下是否有raw文件夹,没有的话就自己新建一个,如下所示:在这里插入图片描述
    第二步, 将想要移动的数据库放进raw目录下,如下:在这里插入图片描述第三步,将数据库移动到目标文件夹下,代码如下:

    package com.example.edm;
    
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Environment;
    import android.util.Log;
    
    public class MyDatabaseHelper {
        private final int BUFFER_SIZE = 500000;
        public static final String DB_NAME = "single18.db"; //保存的数据库文件名
        public static final String PACKAGE_NAME = "com.example.edm";//包名
        public static final String DB_PATH = "/data"
                + Environment.getDataDirectory().getAbsolutePath() + "/"
                + PACKAGE_NAME + "/databases";  //存放数据库的位置
        String dbfile=DB_PATH+"/"+DB_NAME;
        private SQLiteDatabase database;
        private Context context;
        public MyDatabaseHelper(Context context){
            this.context = context;
        }
        public void openDatabase() {
            File dFile=new File(DB_PATH);//判断路径是否存在,不存在则创建路径
            if (!dFile.exists()) {
                dFile.mkdir();
            }
            this.database = this.openDatabase(DB_PATH + "/" + DB_NAME);
        }
        private SQLiteDatabase openDatabase(String dbfile) {
            try {
                if (!(new File(dbfile).exists())) {
                    InputStream is = this.context.getResources().openRawResource(
                            R.raw.single18); //想要导入的数据库在这里
                    FileOutputStream fos = new FileOutputStream(dbfile);
                    byte[] buffer = new byte[BUFFER_SIZE];
                    int count = 0;
                    while ((count = is.read(buffer)) > 0) {
                        fos.write(buffer, 0, count);
                    }
                    fos.close();
                    is.close();
                }
                SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile,
                        null);
                return db;
            }catch (FileNotFoundException e) {
                Log.e("Database", "File not found");
                e.printStackTrace();
            } catch (IOException e) {
                Log.e("Database", "IO exception");
                e.printStackTrace();
            }
            return null;
        }
        public void closeDatabase() {
            this.database.close();
        }
    }
    
    
    

    这里有个值得注意的地方,就是db文件命名的时候要写成英文,否则使用R.raw.db_name时会找不到该文件,我也不知道怎么回事。。。
    调用:

    myDatabaseHelper=new MyDatabaseHelper(SingleSubjectActivity.this);
    myDatabaseHelper.openDatabase();
    myDatabaseHelper.closeDatabase();
    

    这样就将single18.db移到了/data/data/packagename/databases下,这里要注意,由于是在真机调试的情况下完成该操作的,事后可能你在目标文件夹下是找不到db文件的,得先停止调试,然后重新调试,进入Device File Exploer才能看见新导入的db文件。本人操作时就遇到了这种情况,我一直以为没有移动成功,一直调试。。白白浪费了时间。这里之所以说可能找不到,是因为可能我的代码有点问题。

    最后,就可以用SQLiteOpenHelper等专用类对该数据库文件进行操作了,不再赘述。

    展开全文
  • SQLite数据库 Android系统集成了一个轻量级的数据库:Sqlite,Sqlite只是一个嵌入式的数据库引擎,专门适用于资源有限的设备上(如手机、PDA等)适量数据存取。 虽然Sqlite支持绝大部分SQL92语法,也允许开发者使用...
  • python SQLite数据库操作

    万次阅读 2020-05-05 10:38:42
    SQLite SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite是一个增长最快的...SQLite数据库优点 不需要一个单独的服务器进程或操作的系统(无服务器的) SQLite 不需...
  • IOS sqlite数据库操作

    千次下载 热门讨论 2012-06-29 14:06:27
    http://blog.csdn.net/totogo2010/article/details/7702207 IOS sqlite数据库操作 iphone 例子
  • SQLite数据库的创建和操作和数据库可视化
  • SQLite 数据库

    千次阅读 2012-08-01 21:01:28
    今天看python里面数据库模块的时候,发现了一个轻便的数据库SQLite,它是在python2.5之后就被打包到标准库内部,你只需要在python中使用: import sqlite3 con=sqlite3.connect('somedatabase.db') curs=con....
  • adb shell下查看sqlite数据库

    万次阅读 2017-02-14 10:34:53
    adb shell下查看sqlite数据库 有时需要查看应用的本地数据库是否改变,一般可以使用SqliteStudio来查看(需要把xx.db文件导出来).现在记录一下如何在adb shell 下面查看sqlite 数据库的内容. Android 把数据都存在在/...
  • 注:本人没有系统的学习,只是了解一点,希望对你有点帮助. 终端命令安装:(若提醒权限不足,... sudo apt-get install sqlite sqlite3  检查死否安装成功:   ... 创建sqlite数据库: 有直接进入,没有创建并进入, ...
  • 小白学python(sqlite数据库操作)

    万次阅读 2021-06-08 20:14:15
    小白学python(sqlite数据库操作) 快学期末了呀,高考今天也刚刚结束,祝大家有好成绩啊。写这个博客主要是有python的信息实践课,就顺便学下数据库的简单知识,并记录如下了。sqlite3创建 快学期末了呀,高考今天...
  • sqlite数据库默认值

    千次阅读 2020-03-19 16:40:09
    sqlite数据库中,迁移数据库之后,又在数据库中添加了将一些列,此时,在之前添加的数据中并没有该字段的数据。此时,有两个选项供我们添加该字段 ——————————————第一种————————————...
  • Android使用SQLite数据库

    千次阅读 2017-01-21 00:57:48
    SQLite数据库是一个轻量级的DBMS(数据库管理系统)。SQLite使用单个文件存储数据,Android标准库包含SQLite库以及配套使用的一些Java辅助类。主要特点:轻量级,单一文件,跨平台,开源。二. Android中SQLite数据库...
  • 下面是最原始的方法,后面“Android中SQLite数据库操作(2)——SQLiteOpenHelper类”将介绍一种常用的android封装操作SQLite的工具类。 MainActivity.java package com.example.sqlitetest; import android.app....
  • python操作sqlite数据库

    千次阅读 2018-04-18 22:34:08
    SQLite数据库是一款轻量级的数据库,无服务器、零配置、事务性的SQL数据库引擎。SQLite是世界上最广泛部署的SQL数据库引擎,而且SQLite的源代码不受版权限制,是小型项目和简单web应用的理想选择。SQLite数据库是一...
  • 【Android】AndroidStudio3.0+保存并查看SQLite数据库文件

    万次阅读 多人点赞 2018-07-09 07:53:57
    如果你打开的APP确实有执行过sqlite数据库相关操作,但是就是没有看到database目录,你可以尝试右键包名,然后Synchronize一下,些许就出来了,如果还没有,那就想办法联系我,我倒要看看是个什么神奇的APP。...
  • 现在是要页面上的所有数据存入数据库中,但是对于SQLite数据库基本无了解 在网上也没有搜索到可以用的东西,希望大神告知,最好能给出源代码 谢谢
  • Python连接SQLite数据库

    千次阅读 2019-01-14 15:06:40
    Python连接SQLite数据库 SQLite数据库更多...
  • js读取sqlite数据库

    千次阅读 2019-10-13 20:12:52
    js 使用 axios 读取 sqlite 数据库文件。
  • Sqlite数据库加密加密

    千次阅读 2019-05-10 15:06:38
    Sqlite数据库加密。(C#连接加密的Sqlite数据库的方法) 参考地址[1]: https://www.jb51.net/article/120279.htm sqlite破解安装包下载: https://download.csdn.net/download/yinchoushi8780/11170781 一、数据库...
  • SQLite是我们在开发中常见的数据库,本文介绍的是一款非常实用的,开源版SQLite数据库查看工具:DB Browser for SQLite。
  • Android Sqlite数据库详解

    千次阅读 2020-12-05 16:32:54
    在整理ContentProvider是知识点之前要先整理Sqlite数据库的知识,因为ContentProvider中要使用到数据库。 步入正题:Sqlite是起源是一艘军舰上,一个数据库程序员觉得潜艇正在使用的数据库太强大的,每次更新升级...
  • uniapp sqlite数据库使用

    千次阅读 热门讨论 2020-08-03 13:47:22
    uniapp sqlite 数据库使用 当我们开发聊天软件时就会进行大量的数据存储,如果直接用uniapp自带的缓存就不行了。 最近我们开发的一个项目,我负责聊天通信这一块,所以把我的经验分享一下给大家,当然我这个仅供参考...
  • Labview 操作 Sqlite 数据库

    千次阅读 2017-05-03 22:22:26
    labview 连接 Sqlite 数据库
  • 安装Sqlite数据库

    千次阅读 2016-09-16 21:32:22
    这学期我们有一门课程,叫做《应用软件设计》,确定的题目是写一...SQLite数据库是一个开源的占用内存小的数据库,Mozilla开源项目中就使用了它。 这里我把SQLite数据库安装的方式整理一下,很简单,百度上也有很多
  • javascript读写本地sqlite数据库

    千次阅读 2020-03-29 20:24:14
    把一个我以前写的JavaScript sqlite数据库操作类分享给大家,还是先上代码,注释写的很清楚啦,支持增删改查,支持链式查询,使用的时候不用new。 /*sqlite数据库操作类 by Bob*/ this.Db={ tableName:"",//表 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 184,386
精华内容 73,754
关键字:

sqlite数据库