通过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 如何连接数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)