Android连接MySQL

Android studio  引入   mysql-connector-java-5.1.30-bin.jar

 

package com.example.util;

import android.util.Log;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class DBUtil {
    private static String driver = "com.mysql.jdbc.Driver";//MySQL 驱动
    private static String url = "jdbc:mysql://10.0.2.2/ry";//MYSQL数据库连接Url
    private static String user = "root";//用户名
    private static String password = "root";//密码

    private static Connection getConn(){

        Connection connection = null;
        try{
            Class.forName(driver);// 动态加载类
            // 尝试建立到给定数据库URL的连接
            connection = DriverManager.getConnection(url ,user, password);

        }catch (Exception e){
            e.printStackTrace();
        }

        return connection;
    }

    public static List getInfoByName(){

        HashMap<String, Object> map = new HashMap<>();
        List list=new ArrayList<>();
        // 根据数据库名称,建立连接
        Connection connection = getConn();

        try {
            // mysql简单的查询语句。这里是根据MD_CHARGER表的NAME字段来查询某条记录
            String sql = "select * from qrtz_locks";
            if (connection != null){// connection不为null表示与数据库建立了连接
                PreparedStatement ps = connection.prepareStatement(sql);
                if (ps != null){
                    // 设置上面的sql语句中的?的值为name
//                    ps.setString(1, name);
                    // 执行sql查询语句并返回结果集
                    ResultSet rs = ps.executeQuery();
                    if (rs != null){
                        int count = rs.getMetaData().getColumnCount();
                        Log.e("DBUtils","列总数:" + count);
                        while (rs.next()){
                            System.out.println("sched_name:"+rs.getString("sched_name"));
                            System.out.println("lock_name:"+rs.getString("lock_name"));
                            list.add(rs.getString("sched_name")+"   " + rs.getString("lock_name"));
                            // 注意:下标是从1开始的
                            for (int i = 1;i <= count;i++){
                                String field = rs.getMetaData().getColumnName(i);
                                map.put(field, field);
                            }
                        }
                        connection.close();
                        ps.close();
                        return  list;
                    }else {
                        return null;
                    }
                }else {
                    return  null;
                }
            }else {
                return  null;
            }
        }catch (Exception e){
            e.printStackTrace();
            Log.e("DBUtils","异常:" + e.getMessage());
            return null;
        }

    }


    /**
     * 使用
     */
    /*public void test(){
        //线程
         TextView tv_data;//显示查询出来的数据
        @SuppressLint("HandlerLeak")
         Handler handler = new Handler(){
            @Override
            public void handleMessage(Message msg) {

                switch (msg.what){
                    case 0x11:
                        String s = (String) msg.obj;
                        tv_data.setText(s);
                        break;
                    case 0x12:
                        String ss = (String) msg.obj;
                        tv_data.setText(ss);
                        break;
                }

            }
        };

        // 创建一个线程来连接数据库并获取数据库中对应表的数据
        new Thread(new Runnable() {
            @Override
            public void run() {
                // 调用数据库工具类DBUtils的getInfoByName方法获取数据库表中数据
                List list=DBUtil.getInfoByName();
                Message message = handler.obtainMessage();
                if(list != null){
                    String s = "";
                    for(int i =0;i<list.size();i++){
                        s=list.get(i).toString();
                    }
                    message.what = 0x12;
                    message.obj = s;
                }else {
                    message.what = 0x11;
                    message.obj = "查询结果为空";
                }
                // 发消息通知主线程更新UI
                handler.sendMessage(message);
            }
        }).start();
    }*/
}

使用方法同SQL server一样(需要开一个线程独立连接数据库),只是连接驱动方式不一样    

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值