Android之使用JDBC连接MySQL
JDBC简介:
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种 基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
Android是使用JAVA语言来进行开发的,所以Android使用JDBC连接MySql就跟JAVA使用JDBC一样,有些开发者说连不上.可能是导的包有错误或SDK版本的问题. 还有个大多数开发者都容易犯的错误.MySQL是否支持外网连接?因为在Android虚拟机连接的网络可能不是你本机的内网.我这里用的虚拟机是Genymotion,其它的不大清楚,而真机就肯定是外网.所以首先得确定你的MySql是否开启了外网连接.
JDBC连接:
1)、新建工程:
新建一个工程,编写好布局.还有MySql的建表.这里只介绍连接部分.
2)、加载驱动:
JDBC驱动由数据库厂商提供,厂商会根据数据库产品实现JDBC
API中的方法.下载好MySQL数据库驱动包后,导入到工程里.
3)、建立连接:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; import android.util.Log; public class jdbcUtils { // 表示定义数据库名称 private final String USERNAME = "root"; // 表示定义数据库密码 private final String PASSWORD = "root"; // 表示定义数据库驱动信息 private final String DRIVER = "com.mysql.jdbc.Driver"; // 表示定义数据库地址.10.3.71.14为数据库所在的IP地址.3306是端口号,doubi是数据库名 private final String URL = "jdbc:mysql://10.3.71.14:3306/doubi"; // 定义数据库的连接,这里得注意下,导入java.sql的包,不要选择java.mysql.jdbc. private Connection connection; // 定义预编译的 SQL语句的对象,这里了同上. private PreparedStatement pstmt; public jdbcUtils() { try { Class.forName(DRIVER); Log.e("TAG", "注册驱动成功!!"); } catch (Exception e) { Log.e("TAG", "注册驱动不成功!!"); } } public Connection getConnection() { try { connection = DriverManager.getConnection(URL, USERNAME, PASSWORD); Log.e("TAG", "连接成功!!"); } catch (Exception e) { Log.e("TAG", "连接不成功!!"); } return connection; } public boolean insert(String sql, List<Object> params) throws SQLException { boolean flag = false; pstmt = connection.prepareStatement(sql); if (params != null && !params.isEmpty()) { for (int i = 0; i < params.size(); i++) { pstmt.setObject(i + 1, params.get(i)); } } int result=pstmt.executeUpdate(); if(result>0){ flag=true; }else{ flag=false; } return flag; } }
类的具体使用方式和介绍请看API文档.
连接类写好了,下面进入测试的Activity.
import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.example.JDBC.jdbcUtils; public class MainActivity extends Activity { public Button button; public TextView text; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text=(TextView)this.findViewById(R.id.text); button=(Button)this.findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { String sql="insert into user(username,password) values(?,?)"; List<Object> params=new ArrayList<Object>(); params.add("chenqiang"); params.add("admin"); try { jdbcUtils jdbcUtils=new jdbcUtils(); jdbcUtils.getConnection(); boolean a=jdbcUtils.insert(sql, params); if(a){ text.setText("插入成功"); }else{ text.setText("插入不成功"); } } catch (SQLException e) { e.printStackTrace(); Log.e("TAG", "异常错误:"+e.getMessage()); } } }); } }
运行:
好了,JDBC连接项目就完成了.