首页 > 代码库 > android数据库编程:连接服务器上的MySQL数据库详细示例
android数据库编程:连接服务器上的MySQL数据库详细示例
1 public class DatabaseDemo extends Activity { 2 private TextView textView; 3 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 // TODO Auto-generated method stub 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_databasedemo1); 9 textView = (TextView) this.findViewById(R.id.myTextView);10 }11 12 public void myButton_onClick(View view) {13 new Thread(runnable).start();14 15 }16 17 Handler handler = new Handler(){18 @Override19 public void handleMessage(Message msg) {20 super.handleMessage(msg);21 Bundle bundle = msg.getData();22 String result = bundle.getString("result");23 textView.setText(result);24 };25 };26 27 private Runnable runnable = new Runnable() {28 29 @Override30 public void run() {31 // TODO Auto-generated method stub32 try {33 String result = executeSQLQuery();34 Message message = new Message();35 Bundle bundle = new Bundle();36 bundle.putString("result", result);37 message.setData(bundle);38 handler.sendMessage(message);39 } catch (ClassNotFoundException e) {40 // TODO Auto-generated catch block41 e.printStackTrace();42 } catch (SQLException e) {43 // TODO Auto-generated catch block44 e.printStackTrace();45 }46 }47 };48 49 50 /**51 * 在android中使用JDBC方式连接服务器上的MySQL数据库Logcat可能抛出的异常:52 * 1.Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server;53 * 如果只是抛出该异常,可能的原因如下:54 * (1)连接该MySQL数据库的用户不具有远程主机访问权限;55 * (2)调高连接数据库的次数,在MySQL.ini配置文档中可以修改;56 * (3)没有创建数据库;57 * 如果同时抛出了2所示的异常,参照2的解决方案;58 * 2.Caused by: android.os.NetworkOnMainThreadException;抛出这种异常的原因是在android的主线程中执行了HTTP请求;解决59 * 的方法是利用Handler管理新创建的线程,在新的线程中执行HTTP请求;60 * @return61 * @throws SQLException62 * @throws ClassNotFoundException63 */64 public String executeSQLQuery() throws SQLException, ClassNotFoundException {65 String string = "";66 // 加载驱动程序;(虚拟机加载类,而非在编程的过程中要使用这个类。)67 Class.forName("com.mysql.jdbc.Driver");68 // 建立数据库连接;69 Connection connection = DriverManager.getConnection(70 "jdbc:mysql://10.20.48.157:3306/test", "test", "mysql@test");71 // 创建SQL语句,执行语句,返回结果集;72 Statement statement = connection.createStatement();73 ResultSet resultSet = statement.executeQuery("SELECT * FROM vote");74 75 // 处理结果集(包括元数据);76 ResultSetMetaData rsMetaData =http://www.mamicode.com/ resultSet.getMetaData();77 while (resultSet.next()) {78 for (int i = 1; i <= rsMetaData.getColumnCount(); i++) {79 string += resultSet.getString(i) + " ";80 }81 string += "\n";82 }83 // 关闭数据库连接;(连接数据库在Java应用程序中是笔很大的开销。)84 connection.close();85 return string;86 }87 }
android数据库编程:连接服务器上的MySQL数据库详细示例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。