首页数据库安卓连接mysql数据库(请问Android怎样连接远程MySQL数据库)

安卓连接mysql数据库(请问Android怎样连接远程MySQL数据库)

编程之家2023-10-16104次浏览

各位老铁们,大家好,今天由我来为大家分享安卓连接mysql数据库,以及请问Android怎样连接远程MySQL数据库的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

安卓连接mysql数据库(请问Android怎样连接远程MySQL数据库)

安卓开发连接数据库

Android连接数据库

Android采用关系型数据库SQLite3,它是一个支持SQL轻量级的嵌入式数据库,在嵌入式操作上有很广泛的,WM采用的也是SQLite3

关于过于、原理方面的东西在这篇文章里不会提到,但是如果你想能够快速的学会操作SQLite3,那这就是你要找的文章!

首先,我们看一下api,所有数据库相关的接口、类都在。database和android.database.sqlite两个包下,虽然只有两个包,但是如果你英文不好或是太懒的话也要迷茫一段时间,其实,我们真正用的到的没有几个!

1、SQLiteOpenHelper(android.database.sqlite.SQLiteOpenHelper)

这是一个抽象类,关于抽象类我们都知道,如果要使用它,一定是继承它!

安卓连接mysql数据库(请问Android怎样连接远程MySQL数据库)

这个类的方法很少,有一个构造方法

SQLiteOpenHelper(android.content.Context context, java.lang.String name,android.database.sqlite.SQLiteDatabase.CursorFactory factory, int version);

参数不做过多的解释,CursorFactory一般直接传null就可以

public void onCreate(SQLiteDatabase db)

此方法在创建数据库是被调用,所以,应该把创建表的操作放到这个方法里面,一会儿在后面我们会再详细的说如何创建表

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

安卓连接mysql数据库(请问Android怎样连接远程MySQL数据库)

从方法名上我们就能知道这个方法是执行更新的,没错,当version改变是系统会调用这个方法,所以在这个方法里应该执行删除现有表,然后手动调用onCreate的操作

SQLiteDatabase getReadableDatabase()

可读的SQLiteDatabase对象

SQLiteDatabase getWritableDatabase()

获取可写的SQLiteDatabase对象

2、SQLiteDatabase(android.database.sqlite.SQLiteDatabase)

关于操作数据库的工作(增、删、查、改)都在这个类里

execSQL(sql)

执行SQL语句,用这个方法+SQL语句可以非常方便的执行增、删、查、改

除此之外,Android还提供了功过方法实现增、删、查、改

long insert(TABLE_NAME, null, contentValues)添加记录

int delete(TABLE_NAME, where, whereValue)删除记录

int update(TABLE_NAME, contentValues, where, whereValue)更新记录

Cursor query(TABLE_NAME, null, null, null, null, null, null)查询记录

除此之外,还有很多方法,如:beginTransaction()开始事务、endTransaction()结束事务…有兴趣的可以自己看api,这里就不多赘述了

3、Cursor(android.database.Cursor)

游标(接口),这个很熟悉了吧,Cursor里的方法非常多,常用的有:

boolean moveToPosition(position)将指针移动到某记录

getColumnIndex(Contacts.People.NAME)按列名获取id

int getCount()获取记录总数

boolean requery()重新查询

boolean isAfterLast()指针是否在末尾

boolean isBeforeFirst()时候是开始位置

boolean isFirst()是否是第一条记录

boolean isLast()是否是最后一条记录

boolean moveToFirst()、 boolean moveToLast()、 boolean moveToNext()同moveToPosition(position)

4、SimpleCursorAdapter(android.widget.SimpleCursorAdapter)

也许你会奇怪了,之前我还说过关于数据库的操作都在database和database.sqlite包下,为什么把一个Adapter放到这里,如果你用过Android的SQLite3,你一定会知道

,这是因为我们对数据库的操作会经常跟列表联系起来

经常有朋友会在这出错,但其实也很简单

SimpleCursorAdapter adapter= new SimpleCursorAdapter(

this,

R.layout.list,

myCursor,

new String[]{DB.TEXT1,DB. TEXT2},

new int[]{ R.id.list1,R.id.listText2});

my.setAdapter(adapter);

一共5个参数,具体如下:

参数1:Content

参数2:布局

参数3:Cursor游标对象

参数4:显示的字段,传入String[]

参数5:显示字段使用的组件,传入int[],该数组中是TextView组件的id

到这里,关于数据库的操作就结束了,但是到目前为止我只做了翻译的工作,有些同学可能还是没有掌握,放心,下面我们一起顺着正常开发的思路理清一下头绪!

前面的只是帮没做过的朋友做下普及,下面才是你真正需要的!

一、写一个类继承SQLiteOpenHelpe

public class DatabaseHelper extends SQLiteOpenHelper

构造方法:

DatabaseHelper(Context context){

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

在onCreate方法里写建表的操作

public void onCreate(SQLiteDatabase db){

String sql=“CREATE TABLE tb_test(_id INTEGER DEFAULT'1' NOT NULL PRIMARY KEY AUTOINCREMENT,class_jb TEXT NOT NULL,class_ysbj TEXT NOT NULL,title TEXT NOT NULL,content_ysbj TEXT NOT NULL)”;

db.execSQL(sql);//需要异常捕获

}

在onUpgrade方法里删除现有表,然后手动调用onCtreate创建表

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

String sql=“drop table”+tbname;

db.execSQL(sql);

onCreate(db);

}

对表增、删、查、改的方法,这里用的是SQLiteOpenHelper提供的方法,也可以用sql语句实现,都是一样的

关于获取可读/可写SQLiteDatabase,我不说大家也应该会想到,只有查找才会用到可读的SQLiteDatabase

/**

*添加数据

*/

public long insert(String tname, int tage, String ttel){

SQLiteDatabase db= getWritableDatabase();//获取可写SQLiteDatabase对象

//ContentValues类似map,存入的是键值对

ContentValues contentValues= new ContentValues();

contentValues.put(“tname”, tname);

contentValues.put(“tage”, tage);

contentValues.put(“ttel”, ttel);

return db.insert(tbname, null, contentValues);

}

/**

*删除记录

*@param _id

*/

public void delete(String _id){

SQLiteDatabase db= getWritableDatabase();

db.delete(tbname,

“_id=?”,

new String[]{_id});

}

/**

*更新记录的,跟插入的很像

*/

public void update(String _id,String tname, int tage, String ttel){

SQLiteDatabase db= getWritableDatabase();

ContentValues contentValues= new ContentValues();

contentValues.put(“tname”, tname);

contentValues.put(“tage”, tage);

contentValues.put(“ttel”, ttel);

db.update(tbname, contentValues,

“_id=?”,

new String[]{_id});

}

/**

*查询所有数据

*@return Cursor

*/

public Cursor select(){

SQLiteDatabase db= getReadableDatabase();

return db.query(

tbname,

new String[]{“_id”,“tname”,“tage”,“ttel”,“taddr”},

null,

null, null, null,“_id desc”);

}

关于db.query方法的参数,有很多,为了防止大家弄乱,我简单说一下

参数1:表名

参数2:返回数据包含的列信息,String数组里放的都是列名

参数3:相当于sql里的where,sql里where后写的内容放到这就行了,例如:tage>?

参数4:如果你在参数3里写了?(知道我为什么写tage>?了吧),那个这里就是代替?的值接上例:new String[]{“30”}

参数5:分组,不解释了,不想分组就传null

参数6:having,想不起来的看看SQL

参数7:orderBy排序

到这里,你已经完成了最多的第一步!我们来看看都用到了那些类:

SQLiteOpenHelper我们继承使用的

SQLiteDatabase增删查改都离不开它,即使你直接用sql语句,也要用到execSQL(sql)

二、这里无非是对DatabaseHelper类定义方法的调用,没什么可说的,不过我还是对查询再唠叨几句吧

Android查询出来的结果一Cursor形式返回

cursor= sqLiteHelper.select();//是不是很简单?

查询出来的cursor一般会显示在listView中,这就要用到刚才提到的SimpleCursorAdapter

SimpleCursorAdapter adapter= new SimpleCursorAdapter(

this,

R.layout.list_row,

cursor,

new String[]{“tname”,“ttel”},

new int[]{R.id.TextView01,R.id.TextView02}

);

里面带有实例。自己好好学习吧!

请问Android怎样连接远程MySQL数据库

Android客户端直接连接远程MySQL数据库的方法如下:

String result="";

//首先使用NameValuePair封装将要查询的年数和关键字绑定

ArrayList<NameValuePair> nameValuePairs= new ArrayList<NameValuePair>();

nameValuePairs.add(new BasicNameValuePair("year","1980"));

//使用HttpPost封装整个SQL语句

//使用HttpClient发送HttpPost对象

try{

HttpClient httpclient= new DefaultHttpClient();

HttpPost httppost= new HttpPost("http://example.com/getAllPeopleBornAfter.php");

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response= httpclient.execute(httppost);

HttpEntity entity= response.getEntity();

InputStream is= entity.getContent();

}catch(Exception e){

Log.e("log_tag","Error in http connection"+e.toString());

}

//将HttpEntity转化为String

try{

BufferedReader reader= new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);

StringBuilder sb= new StringBuilder();

String line= null;

while((line= reader.readLine())!= null){

sb.append(line+"\n");

}

is.close();

result=sb.toString();

}catch(Exception e){

Log.e("log_tag","Error converting result"+e.toString());

}

//将String通过JSONArray解析成最终结果

try{

JSONArray jArray= new JSONArray(result);

for(int i=0;i<jArray.length();i++){

JSONObject json_data= jArray.getJSONObject(i);

Log.i("log_tag","id:"+json_data.getInt("id")+

", name:"+json_data.getString("name")+

", sex:"+json_data.getInt("sex")+

", birthyear:"+json_data.getInt("birthyear")

);

}

}

}catch(JSONException e){

Log.e("log_tag","Error parsing data"+e.toString());

}

虽然Android开发中可以直接连接数据库,但是实际中却不建议这么做,应该使用服务器端中转下完成。

Android 开发。。。如何连接到服务器上的mysql数据库

这个,不建议你用Android程序去直连MySQL数据库,不是做不到,而是我觉得这样做不好,出于安全等方面考虑,(这篇博文:http://www.ways2u.com/?post=197有实现方法),你的数据库地址,用户名密码,查询SQL什么的都存在程序里,很容易被反编译等方法看到。

我建议你和你那做网页前端的商量一下,让他们把表示层和数据层逻辑分开,数据层对应网页的表示层提供接口,同时在为你的Android手机端提供一个接口,简介访问数据库,这接口可以2端都保持一致,比如XML+RPC或者json等等,Android端也有现成的东西能直接用,既安全又省事。

关于安卓连接mysql数据库和请问Android怎样连接远程MySQL数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

redis是内存数据库吗(redis不是数据库吗)中国营养师网,营养师证国家承认吗