zoukankan      html  css  js  c++  java
  • 数据库: Android使用JDBC连接数据库实现增 删 该 查 操作(5.0版本)

    前言

      上一节的代码没有测试通过,暂时没有找到问题,这节咱用5.0的jar包

      

      配置数据库,导入jar包参考上一节(导入这节的jar包)

    准备好测试的数据库

      IP: 47.92.31.46

      用户名: yang

      密码:    11223344.

      数据库名字 :  databasetest

      表格:  userinfo

      

      这是我云端电脑安装的数据库,大家都可以连接测试

      我设置了权限,只可以增删改查数据

    加载mysql驱动

      Class.forName("com.mysql.jdbc.Driver").newInstance();

      

      

    连接数据库

      

                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try{
                            Connection connection = DriverManager.getConnection("jdbc:mysql://47.92.31.46/databasetest?" +
                                    "user=yang&password=11223344.&characterEncoding=utf-8");
                            if (connection!=null) {
                                Log.e("MainActivity", "Connectd Mysql");
                            }
                        }catch (SQLException e){
    
                        }
                    }
                }).start();

    因为是网络通信,所以加上任务,防止超时连接阻塞造成卡机

    
    
    Connection connection = DriverManager.getConnection("jdbc:mysql://47.92.31.46/databasetest?" +
            "user=yang&password=11223344.&characterEncoding=utf-8");
    
    
    
    
    
    47.92.31.46 :IP地址(自己电脑的IP地址)
    databasetest   :数据库名字
    user=yang     :设置连接的数据库的用户名
    password=11223344. :设置连接的数据库的密码
    characterEncoding=utf-8  :编码方式
     

    插入数据(第一种)

      一,插入数据,id是1,用户名是yang 密码是11223344

      "insert into userinfo "+ " values(1,"+"'"+ "yang" +"'"+ "," +"'"+"11223344"+"'"+")";

      insert into userinfo : 插入数据到 userinfo 表格 

      1 :id的值,自动递增

      yang : 用户名

      11223344 :密码

      注:一般插入字符串型数据需要在数据两边加   '    '

      也就是  '数据'

      

                                String sql = "insert into userinfo "+ " values(1,"+"'"+ "yang" +"'"+ "," +"'"+"11223344"+"'"+")";//第一种
                                Statement statement = connection.createStatement();
                                statement.execute(sql);//提交

      

    运行测试

      

    插入数据(第二种)

      

    String sql = "insert into userinfo "+ " values(NULL,"+"'"+ "yangyang" +"'"+ "," +"'"+"11223344"+"'"+")";

     和上面相比 value(NULL.....)

    设置第一个字段是空,意思是不填写第一个字段(默认就会自动递增)

    运行测试

      

    总结上两种插入数据方式

      values里面的值依次填到表格中,如果数据不够,后面的就不插入数据

      

    插入数据(第三种)

      

    String sql = "insert into userinfo (username,password)"+ "values(" +"'"+ "yangyang" +"'"+ "," +"'"+"11111111"+"'"+")";
    (username,password) 后面的values里面的数据对应插到哪个字段里面
    yangyang 插入到 username 字段里面
    11111111 插入到 password 字段里面
    
    

    运行测试

    
    

      

    删除数据

    String sql = "delete from userinfo "+" where "+"username = "+"'"+"yang" +"'";

    删除 userinfo表格中 username字段中是 yang的数据

    意思就是删除,下面这条数据

    运行测试

      

    String sql = "delete from userinfo "+" where "+"username = "+"'"+"yangyang" +"'"+ " and " +"password ="+"'"+"00000000"+"'";

    删除 userinfo表格中 username字段中是 yangyang,同时password字段中是 00000000 的数据

    其实就是删除这个

      

    运行测试

      

    修改数据

      

    String sql = "update userinfo set password="+"'"+"888888"+"'" +"where username="+"'"+"yangyang"+"'";

     找到userinfo表格中username字段值是yangyang的

    然后把 password字段的值修改为 888888

    其实就是把11111111修改为888888

    运行测试

      

    当然也可以直接设置

    String sql = "update userinfo set password="+"'"+"888888"+"'";

    查询数据

                                String sql = "select *from userinfo";//查询表格中的所有数据
                                Statement statement = connection.createStatement();
                                ResultSet resultSet =  statement.executeQuery(sql);
                                if (resultSet != null) {
                                    try{
                                        while(resultSet.next()) {
                                            String username = resultSet.getString("username");
                                            String password = resultSet.getString("password");
                                            Log.e("查询的数据", username+"   "+password);
                                        }
                                    }catch (Exception e){
                                    }
                                }

     测试

      

     为直观看到下面的测试增加一个用户名和密码

    查询表格中的所有username字段的值
                                String sql = "select username from userinfo";//查询表格中的所有username字段的值
                                Statement statement = connection.createStatement();
                                ResultSet resultSet =  statement.executeQuery(sql);
                                if (resultSet != null) {
                                    try{
                                        while(resultSet.next()) {
                                            String username = resultSet.getString("username");
                                            //String password = resultSet.getString("password");
                                            //Log.e("查询的数据", username+"   "+password);
                                            Log.e("查询的数据", username);
                                        }
                                    }catch (Exception e){
                                    }
                                }

     运行测试

      

    查询表格中的密码是666666的用户名
                                String sql = "select username from userinfo where password = 666666";//查询表格中的密码是666666的用户名
                                Statement statement = connection.createStatement();
                                ResultSet resultSet =  statement.executeQuery(sql);
                                if (resultSet != null) {
                                    try{
                                        while(resultSet.next()) {
                                            String username = resultSet.getString("username");
                                            //String password = resultSet.getString("password");
                                            //Log.e("查询的数据", username+"   "+password);
                                            Log.e("查询的数据", username);
                                        }
                                    }catch (Exception e){
                                    }
                                }

    运行测试

      

    //查询表格中password是666666的所有数据

                                String sql = "select *from userinfo where password = 666666";//查询表格中password是666666的所有用户信息
                                Statement statement = connection.createStatement();
                                ResultSet resultSet =  statement.executeQuery(sql);
                                if (resultSet != null) {
                                    try{
                                        while(resultSet.next()) {
                                            String username = resultSet.getString("username");
                                            String password = resultSet.getString("password");
                                            Log.e("查询的数据", username+"   "+password);
                                        }
                                    }catch (Exception e){
                                    }
                                }
                            }

    运行测试

      

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    现在使用控件, 更喜欢继承(覆盖控件已有的函数,很奇怪的一种使用方式)
    Controls 属性与继承 TShape 类的小练习(使用TShape可以解决很多图形问题)
    QT创建窗口程序、消息循环和WinMain函数(为主线程建立了一个QEventLoop,并执行exec函数)
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/12190119.html
Copyright © 2011-2022 走看看