android开发数据库怎么连接

android开发数据库怎么连接,第1张

通过cmd可对数据库进行访问,现在开发android一般都用的eclipse+adt+sdk;进入cmd输入adb shell ,然后 cd /data/data 再ls 显示所有的包名,cd 到你的包名,然后 cd databases 再ls 显示你的数据库名 ,最后 sqlite3 数据库名 ,更多查看安卓巴士:>

这种方式通常连接一个外部的数据库,第一个参数就是数据库文件,这个数据库不是当前项目中生成的,通常放在项目的Assets目录下,当然也可以在手机内,如上面参数那个目录,前提是那个文件存在且你的程序有访问权限。

另一种使用数据库的方式是,自己创建数据库并创建相应的数据库表,参考下面的代码:

public class DatabaseHelper extends SQLiteOpenHelper {

//构造,调用父类构造,数据库名字,版本号(传入更大的版本号可以让数据库升级,onUpgrade被调用)

public DatabaseHelper(Context context) {

super(context, DatabaseConstantDATABASE_NAME, null, DatabaseConstantDATABASE_VERSION);

}

//数据库创建时调用,里面执行表创建语句

@Override

public void onCreate(SQLiteDatabase db) {

dbexecSQL(createVoucherTable());

}

//数据库升级时调用,先删除旧表,在调用onCreate创建表

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

dbexecSQL("DROP TABLE IF EXISTS " + DatabaseConstantTABLE_NAME);

onCreate(db);

}

//生成 创建表的SQL语句

private String createVoucherTable() {

StringBuffer sb = new StringBuffer();

sbappend(" CREATE TABLE ")append(DatabaseConstantTABLE_NAME)append("( ")append(“ID”)

append(" TEXT PRIMARY KEY, ")

append(“USER_ID”)append(" INTEGER, ")append(“SMS_CONTENT”)append(" TEXT ) ");

return sbtoString();

}

} 继承SQLiteOpenHelper并实现里面的方法

之后:

//得到数据库助手类

helper

=

new

DatabaseHelper(context);

//通过助手类,打开一个可读写的数据库连接

SQLiteDatabase

database

=

helpergetReadableDatabase();

//查询表中所有记录

databasequery(DatabaseConstantTABLE_NAME,

null,

null,

null,

null,

null,

null);

android 数据库文件查看的方法有:

第一种方法、使用DDMS导出sqlite数据库。

1、打开android项目的调试模式,然后找到显示DDMS:

选择DDMS

2、切换到DDMS,显示File Explorer窗口,找到/data/data/,然后找到程序包的文件夹,打开databases,就能看到sqlite数据库文件了。选择将其导出。

3、把sqlite数据库文件以文件的方式导出来了,然后使用sqlite界面管理工具如sqlite administrator、sqlite man或者firefox插件sqlite manager等打开就可以了。

第二种方法、使用adb工具访问sqlite数据库

1、Android Debug Bridge(ADB)是Android的一个通用调试工具,它可以更新设备或模拟器中的代码,可以管理预定端口,可以在设备上运行shell命令,android是基于Linux内核,它的内部文件结构也是采用linux文件组织方式,因此访问它的文件结构需要使用shell。用shell来访问android应用中的sqlite数据库文件。

2、运行cmd,切换到android-sdk目录,运行adbexe,加上参数shell,出现#号就代表进入了shell命令模式,注意adb要在Android模拟器运行时才能进入shell:

3、shell命令记住两个基本命令ls和cd,类似windows命令提示行中的dir和cd,代表列出当前目录下文件列表和进入到指定目录。了解这两个命令之后,就可以找到data/data/项目包名/databases;

4、找到数据库文件:使用sqlite管理工具来进行 *** 作了。键入sqlite3 数据库名就进入了sqlite管理模式了。在android的sdk中自带了sqlite3exe,这是sqlite的官方管理工具,它是一个命令行工具。为了使用方便,将其路径注册到系统环境变量path中,即将;%Android_Home%加在Path中,这样只样运行sqlite3,就能直接打开sqlite管理工具了。

第三种方法、sqlite管理数据库

sqlite命令行工具默认是以结束语句的。所以如果只是一行语句,要在末尾加;或者在下一行中键入;这样sqlite命令才会被执行。

sqlite常用命令:

tables--查看数据库的表列表

exit--退出sqlite命令行

其他命令可随时help查看帮助。sql命令可直接在此命令行上执行即可。

使用android内嵌式数据库存储数据,有个sqliteopenhelper数据库帮助类,这个类的对象可以对数据库进行查询,查询返回的的是一个cursor类结果集,然后用cursoradapter进行数据适配。

android除了sqlite数据库,还是可以使用mysql数据库,使用步骤如下:

1 关闭mysql服务器的防火墙。

2 加入MySQL的jdbc包,添加到libs文件夹内。

3ADT和SDK为16及16以下,17以上的不能访问。

4手机和mysq服务器l互相ping通。

5添加网络权限  : <uses-permission Android:name="androidpermissionINTERNET" />

6在Thread中连接访问mysql,防止ANR。

7设置mysql允许远程连接。

代码如下:

package commayimysql_test; 

  

import javasqlDriverManager;  

import javasqlResultSet;  

  

import commysqljdbcConnection;  

import commysqljdbcStatement;  

  

import androidosBundle;  

import androidappActivity;  

import androidutilLog;  

import androidviewView;  

import androidviewViewOnClickListener;  

  

public class MainActivity extends Activity {  

  

    private static final String TAG = "MainActivity";  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

        superonCreate(savedInstanceState);  

        setContentView(Rlayoutactivity_main);  

        findViewById(Ridselect)setOnClickListener(new OnClickListener() {  

              

            @Override  

            public void onClick(View v) {  

                select();  

            }  

        });  

    }  

    public void select(){  

        try{  

               //调用ClassforName()方法加载驱动程序  

            ClassforName("orggjtmmmysqlDriver");  

            Systemoutprintln("成功加载MySQL驱动!");  

            String url="jdbc:mysql://1921681113:3306/test";    //JDBC的URL      

            Connection conn;  

            conn = (Connection) DriverManagergetConnection(url,"mayi","123456");  

            Statement stmt = (Statement) conncreateStatement(); //创建Statement对象  

            Systemoutprintln("成功连接到数据库!");  

            String sql = "select  from person";    //要执行的SQL  

            ResultSet rs = stmtexecuteQuery(sql);//创建数据对象  

                Systemoutprintln("编号"+"\t"+"姓名"+"\t"+"年龄");  

                while (rsnext()){  

                    Systemoutprint(rsgetInt(1) + "\t");  

                    Systemoutprint(rsgetString(2) + "\t");  

                    Systemoutprint(rsgetString(3) + "\t");  

                    Systemoutprint(rsgetString(4) + "\t");  

                    Systemoutprintln();  

                }  

                rsclose();  

                stmtclose();  

                connclose();  

            }catch(Exception e)  

            {  

                Loge(TAG, egetMessage());  

                eprintStackTrace();  

            }  

    }  

}

1、设置一个DB_VERSION

public static final int DB_VERSION = 1;

2、当你要更新表的时候就把DB_VERSION+1,就会触发onUpgrade,数据库就更新了,记得采纳

public DBHelper() {

    // for test

    daoConfig = new DbManagerDaoConfig()

            setDbName(DB_NAME)

            setDbVersion(DB_VERSION)

            setDbDir(EnvironmentgetExternalStorageDirectory())

            setDbOpenListener(new DbManagerDbOpenListener() {

                @Override

                public void onDbOpened(DbManager db) {

                    dbgetDatabase()enableWriteAheadLogging();

                }

            })

            setDbUpgradeListener(new DbManagerDbUpgradeListener() {

                @Override

                public void onUpgrade(DbManager db, int oldVersion, int newVersion) {

                    updateTable(db, xxclass);

                    

                }

            });

}

为了实现对数据库版本进行管理,SQLiteOpenHelper类提供了两个重要的方法,分别是onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion),前者用于初次使用软件时生成数据库表。

后者用于升级软件时更新数据库表结构。当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于 *** 作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。

onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号,而数据库的版本是由程序员控制的,假设数据库现在的版本是1,由于业务的变更,修改了数据库表结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为了实现这一目的,可以把原来的数据库版本设置为2,并且在onUpgrade()方法里面实现表结构的更新。

当软件的版本升级次数比较多,这时在onUpgrade()方法里面可以根据原版号和目标版本号进行判断,然后作出相应的表结构及数据更新。

以上就是关于android开发数据库怎么连接全部的内容,包括:android开发数据库怎么连接、android怎么链接数据库mysql、android 如何连接数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9299252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存