当前位置:编程学习 > wap >>

如何才能在连接mysql数据库时不出现卡机情况呢?

为什么我在连接mysql数据库时总是出现卡机的呢?mysql服务器是其他人的,我们在同一个局域网里。有什么办法解决不?
用线程可以吗?如果可以能写出来吗?谢谢。 --------------------编程问答-------------------- 线程是异步处理数据的,我想链接数据库这边应该解决不了你说的问题,你可以试试!注意同步的问题。很久没搞mysql这样的数据库了,你去 javaee 区问问,那边专业的多点,我搞android用的是内嵌的SQLite数据库。 --------------------编程问答-------------------- 启动新线程

在线程中连接mysql数据库

将连接代码段放入线程run方法中就行 --------------------编程问答-------------------- 回三楼。我也是这样连的。我的代码:
    class ButtonListener implements OnClickListener
    {
public void onClick(View v)
{
handler.post(updateThread);
}
    
Handler handler = new Handler();

Runnable updateThread = new Runnable()
{
public void run() 
{
/**
 * 我连接数据库的代码区
 */
}
};

    }
} --------------------编程问答-------------------- 回二楼。我是一边连接数据库,一边出现一个滚动条,两个同时进行。
连接数据库是放在线程里的,滚动条是放在进程里的。但是在连接数据
库的时候却会卡死滚动条。
如果像你说的,用同步,那线程会一个一个的执行。那岂不是达不到我所要的目的。 --------------------编程问答-------------------- 是连接卡? 查询一类操作卡吗?

pc机局域网内连接延时吗?

--------------------编程问答-------------------- 应该是查询和连接都卡。我的是通过pc机连接局域网内的其他pc的mysql数据库。 --------------------编程问答--------------------
引用 4 楼 qq15989177612 的回复:
回二楼。我是一边连接数据库,一边出现一个滚动条,两个同时进行。
连接数据库是放在线程里的,滚动条是放在进程里的。但是在连接数据
库的时候却会卡死滚动条。
如果像你说的,用同步,那线程会一个一个的执行。那岂不是达不到我所要的目的。


LZ,你是说你在链接时,跟新UI么,用子线程来跟新主线程的UI,肯定是会卡的,你试试 lopper  --------------------编程问答-------------------- 搞开发的女孩子!! --------------------编程问答-------------------- handler.post(updateThread);用Runnable是会卡的


class ButtonListener implements OnClickListener
{
public void onClick(View v)
{
   new Thread(new Runnable(){
@Override
public void run() {
/**
                  * 你连接数据库的代码
                  */
}
}).start();
}
}
--------------------编程问答--------------------
引用 4 楼 qq15989177612 的回复:
回二楼。我是一边连接数据库,一边出现一个滚动条,两个同时进行。
连接数据库是放在线程里的,滚动条是放在进程里的。但是在连接数据
库的时候却会卡死滚动条。
如果像你说的,用同步,那线程会一个一个的执行。那岂不是达不到我所要的目的。


LZ 是通过runOnUiThread 来更新UI进度条的吗? --------------------编程问答--------------------
引用 3 楼 qq15989177612 的回复:
回三楼。我也是这样连的。我的代码:
    class ButtonListener implements OnClickListener
    {
public void onClick(View v)
{
handler.post(updateThread);
}
 
Handler handler = new Handler();

Runnable updateTh……

你这个应该是和主线程邦定的,可以邦定handlerthread线程 --------------------编程问答--------------------
引用 3 楼 qq15989177612 的回复:
回三楼。我也是这样连的。我的代码:
    class ButtonListener implements OnClickListener
    {
public void onClick(View v)
{
handler.post(updateThread);
}
 
Handler handler = new Handler();

Runnable updateTh……


这实际上还是在UI线程去做的耗时操作,post 会把updateThread 发送到 hanlder 所在的Thread的消息队列中,而这个消息队列是UI的消息队列。

可以采用9楼的方法实现异步操作 ,但那不是android推荐的方式。 正确的操作步骤应该为:

class ButtonListener implements OnClickListener
  {
public void onClick(View v)
{
handler.post(updateThread);
}
 
Handler handler = new Handler();

Runnable updateThread = new Runnable()
{
public void run() 
{
/**
* 我连接数据库的代码区
*/
}
};
updateThread .start();

  }
}
--------------------编程问答-------------------- 上面写错了,正确的操作步骤应该为:

class ButtonListener implements OnClickListener
  {
public void onClick(View v)
{
updateThread .start();
}
 
Handler handler = new Handler();

Runnable updateThread = new Runnable()
{
public void run() 
{
/**
* 我连接数据库的代码区
*/
}
};

  }
} --------------------编程问答--------------------
引用 3 楼 qq15989177612 的回复:
回三楼。我也是这样连的。我的代码:
    class ButtonListener implements OnClickListener
    {
public void onClick(View v)
{
handler.post(updateThread);
}
 
Handler handler = new Handler();

Runnable updateTh……

建议楼主把两个线程的id打印出来,确定是不同的id(不同的线程);还有建议动态加载数据参考如下文档:
http://blog.csdn.net/mayingcai1987/article/details/6273606
--------------------编程问答-------------------- 是否可以搞个数据链接池呢。。 --------------------编程问答-------------------- 用模拟器去连数据库?不知道是不是我理解错了,正常应该是客户端发送请求,服务端返回数据,客户端解析然后展示的吧 --------------------编程问答--------------------
引用 15 楼 yangmaolinpl 的回复:
是否可以搞个数据链接池呢。。

如果数据量大的话建议用连接池。
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,