Android之JDBC

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连接项目就完成了.

Android之JDBC,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。