• 数据库: 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){
                                    }
                                }
                            }

    运行测试

      

  • 相关阅读:
    一篇文章搞明白CORS跨域
    我从来不理解JavaScript闭包,直到有人这样向我解释它...
    将博客搬至CSDN
    Spring Boot缓存源码分析
    网站技术架构
    在springboot中使用Mybatis Generator的两种方式
    官方文档Core Technologies
    Java诊断工具Arthas
    Intellij IDEA 修改代码后自动编译更新
    TabHost选项卡的实现(二):使用Fragment实现
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/12190119.html
Copyright © 2020-2023  润新知