android studio 数据库管理app

使用的5.1的mysql-connector-java,4.1, 5.0, 5.1, 5.5, 5.6, 5.7的mysql都可以使用。

读懂代码了也可以自己配置mysql-connector-java,连接其他版本的mysql。

参考文章:https://blog.csdn.net/qq_40719095/article/details/105954654?spm=1001.2014.3001.5502

app界面:

主要代码:

线程:

 thread=new Thread(new Runnable() {
                    String dbname=et_databases.getText().toString();
                    String order=editText.getText().toString();
                    @Override
                    public void run() {
                            try{
                            List<HashMap<String,Object>> list1=new ArrayList<HashMap<String, Object>>();
                            list1=DBUtiles.getinfo(dbname,order);
                            Log.d(TAG, list1.toString());

//                            以下这些也可以new一个新的线程执行,我这里是做成添加了立刻刷新列表的效果所以添加完数据立刻获取list并通过message发送出去再添加到适配器中
                            //                将从数据库拿到的list1对象传给message再由handler传出,再在Handler中处理,可进行更新UI
                            Message message=Message.obtain();
                            message.what=1;
                            message.obj=list1;
                            handler.sendMessage(message);
                        } catch (Exception e1) {
                            e1.printStackTrace();
                            MainActivity.this.runOnUiThread(new Runnable() {
                                public void run() {
                                    Toast toast;
                                    if(e1.toString().startsWith("com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException")) {
                                        String str1=e1.toString().substring(e1.toString().indexOf(":")+1);
                                        toast = Toast.makeText(MainActivity.this, str1, Toast.LENGTH_LONG);
                                    }
                                    else{
                                        toast = Toast.makeText(MainActivity.this, "数据库信息有误,连接失败!", Toast.LENGTH_LONG);
                                    }
                                    toast.show();
                                }
                            });
                        }
                    }
                });
                thread.start();

工具类DBUtiles:

 public static List<HashMap<String,Object>> getinfo(String dbname,String order) throws Exception {

//       先定义一个List<HashMap<String,Object>>类型的数据并实例化
        List<HashMap<String,Object>> list=new ArrayList<HashMap<String, Object>>();

        Connection conn=getConnection(dbname);

//        由conn对象创建执行sql语句的对象(Statement类型),调用方法createStatement()
        Statement sta=conn.createStatement();
        String sql=order;

        sta.execute(sql);
//        定义sql语句
        sql="select * from mysql ";

//        调用Statement对象执行sql语句,返回结果result是ResultSet类型,就是结果集,具体百度
        ResultSet result=sta.executeQuery(sql);

//        判断一下是否为空
        if (result==null){
            return null;
        }

//        条件是当结果集是否有下一行,这是一个相当于指针的东西,第一次调用时会把第一行设置为当前行,第二次回吧第二行设置为当前行,以此类推,直到没有下一行,循环结束
        int i = result.getMetaData().getColumnCount();

        while (result.next()) {
//            每次循环都会新实例化一个HashMap对象,用于将遍历到的数据填进去
            HashMap<String,Object> map=new HashMap<>();

            String a = result.getString(1);
            for(int m=2;m<=i;m++) {
                a =a+result.getString(m) + "   " ;
            }
            map.put("name",a);
//            每次循环完就添加到list中,最终list的样子是:[{name=xx},{name=aaa},.......]
            list.add(map);
        }
        return list;
    }

1.输入服务器的ip,port(默认3306,可以改),user,password,databases。就可以登入数据库运行输入的指令了

2.本来想做成增删改查所有功能的,但要适应不同的表格太麻烦了,所以做成了指令形式的。

相当于手机用mysql指令操控电脑mysql。

3.指令错误会返回报错。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值