MySQL: 基于 Android(安卓)远程连接
/************************************************************
声明:如需转载,请注明出处!
************************************************************/
本篇博客基于 http://blog.csdn.net/androidbluetooth/article/details/7716175
在上篇博客里面,介绍了jdbc 的远程连接操作,并且成功了。
点击这里,查看细节。
那么,我们是否可以将这种操作移植到 android 上面?
答案是肯定的,不信你往下看。
程序效果图
项目结构
项目文件中新建 libs 目录,将 jdbc 的 jar 文件放到里面。
这样 adt 插件自动将该 jar 添加到 build path.
数据库表里面的原始数据
插入数据
删除数据
更新数据
Main.java
package mark.zhang;import java.sql.Connection;import java.sql.SQLException;import android.app.Activity;import android.os.Bundle;import android.view.View;public class Main extends Activity {private static final String REMOTE_IP = "192.168.1.102";private static final String URL = "jdbc:mysql://" + REMOTE_IP + "/mydb";private static final String USER = "mark";private static final String PASSWORD = "123456";private Connection conn;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}public void onConn(View view) {conn = Util.openConnection(URL, USER, PASSWORD);}public void onInsert(View view) {String sql = "insert into mytable values(9, 'hanmeimei')";Util.execSQL(conn, sql);}public void onDelete(View view) {String sql = "delete from mytable where name='mark'";Util.execSQL(conn, sql);}public void onUpdate(View view) {String sql = "update mytable set name='lilei' where name='hanmeimei'";Util.execSQL(conn, sql);}public void onQuery(View view) {System.out.println("All users info:");Util.query(conn, "select * from mytable");}@Overrideprotected void onDestroy() {super.onDestroy();if (conn != null) {try {conn.close();} catch (SQLException e) {conn = null;} finally {conn = null;}}}}
Util.java
package mark.zhang;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Util {public static Connection openConnection(String url, String user,String password) {Connection conn = null;try {final String DRIVER_NAME = "com.mysql.jdbc.Driver";Class.forName(DRIVER_NAME);conn = DriverManager.getConnection(url, user, password);} catch (ClassNotFoundException e) {conn = null;} catch (SQLException e) {conn = null;}return conn;}public static void query(Connection conn, String sql) {if (conn == null) {return;}Statement statement = null;ResultSet result = null;try {statement = conn.createStatement();result = statement.executeQuery(sql);if (result != null && result.first()) {int idColumnIndex = result.findColumn("id");int nameColumnIndex = result.findColumn("name");System.out.println("id\t\t" + "name");while (!result.isAfterLast()) {System.out.print(result.getString(idColumnIndex) + "\t\t");System.out.println(result.getString(nameColumnIndex));result.next();}}} catch (SQLException e) {e.printStackTrace();} finally {try {if (result != null) {result.close();result = null;}if (statement != null) {statement.close();statement = null;}} catch (SQLException sqle) {}}}public static boolean execSQL(Connection conn, String sql) {boolean execResult = false;if (conn == null) {return execResult;}Statement statement = null;try {statement = conn.createStatement();if (statement != null) {execResult = statement.execute(sql);}} catch (SQLException e) {execResult = false;}return execResult;}}
main.xml
<?xml version="1.0" encoding="utf-8"?>
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
注意:
-----------------------------------------------------------------------------
2016.7.28 更新
-----------------------------------------------------------------------------
首先非常感谢@lyz12600对工程的整理.
大家可以去下载 AndroidStudio 的代码, 运行, 有问题多交流.
下载地址:http://download.csdn.net/detail/lyz12600/9581532
再次感谢@lyz12600.
扫一扫关注一下我的公众号
更多相关文章
- Android(安卓)关于显示键盘,布局错乱网上顶的问题
- android开发模式LiveData+ViewModel+Room+Retrofit
- Android(安卓)上实现微信微博上的应用语言切换
- android分组数据适配器demo
- android 数据库更改数据库位置【DbFlow示范】
- android之Gallery
- Android页面跳转是如何传递参数的
- android登录简单窗口
- mybatisplus的坑 insert标签insert into select无参数问题的解决