Android访问MySQL数据(包含搜索,插入,更新,删除四种语法)

首先需要JDBC导入jar包的方式
法一:在build.gradle中添加依赖compile files(‘libs/mysql-connector-java-5.1.18-bin.jar’)

法二:下载mysql-connector-java-5.1.34-bin.jar包,然后赋值粘贴进Android Studio的libs下

除此之外还需在AndroidMainfest.xml中添加请求访问网络的权限

<uses-permission android:name="android.permission.INTERNET" />

一、调用数据库数据

    //开一个子线程
            new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                        	///为应用程序加载驱动
                            Class.forName("com.mysql.jdbc.Driver");
                            //使用JDBC_URL来标识特定的数据库
                            String driver_url = "jdbc:mysql://*地址IP*:*端口*/库?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull";
                            //接收数据库的URL,数据库用户名,用户口令,即连接数据库
                            Connection conn = DriverManager.getConnection(driver_url, "*用户名*", "*密码*");
                            //将要执行的SQL语句
                            String sql = "select * from course where user_id = ?;";//本句解读为从course表中(即,from course)查找所用数据,限制条件为(where后面为限制条件)user_id = ?
                            //PreparedStatement用于执行带或不带参数的预编译SQL语句
                            PreparedStatement psmt = conn.prepareStatement(sql);
                            //调用setString方法给sql中的第一个问号赋值,这里x为变量。即查找course表中限制条件为表中的user_id = x的所有行,所以返回的结果就是course_id = x 的所用行数据。如有两个数据就再加一行为psmt.setString(2, y),y为变量
                            psmt.setString(1, x);
                            //返回PreparedStatement语句执行的结果
                            ResultSet rs = psmt.executeQuery();
                            //从rs结果集中取到想要的结果,rs.next()表示指针指向结果集的下一行。一开始为第一行
                            while (rs.next()) {
                                //通过rs的get方法得到指针指向当前行的user_id字段对应的值
                                user_id = rs.getString("user_id");
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }).start;//开始线程

二、向数据库插入数据
一开始的几句都不变是需要修改SQL语句即可,这里就不在重复写了

    //向course表插入数据,其中course_id字段插入的值对应第一个问号,user_id字段插入的值对应第二个问号,course_time字段插入的值对应第三个问号,student_id字段插入的值对应第四个问号
    String sql = "insert into course (course_id,user_id,course_time,student_id) values (?,?,?,?);";
    PreparedStatement pstm = cn.prepareStatement(sql);
    //通过setString给4个问好赋值,下面的course_id,user_id,course_time,us_job_id都是已有值的变量,不要误会了
    pstm.setString(1, course_id);
    pstm.setString(2, user_id);
    pstm.setString(3, course_time);
    pstm.setString(4, student_id);
    //执行更新数据库
    pstm.executeUpdate();
    //关闭链接
    cn.close();
    //关闭访问
    pstm.close();

三、更新数据库(前提是有那行数据)
前面的几句都和之前的一样的也就不重复写了

    //更新course表中的course_time字段,将其更新为第一个问行,找到这行的限制条件为course_id字段等于第二个问号,user_id等于第三个问号,student_id字段等于3
    String  sql = "update course set course_time = ? where course_id = ? and user_id  = ? and student_id = 3;";
    pstm = cn.prepareStatement(sql);    
    //给问好赋值                              			   
    pstm.setString(1,course_time);                                   
    pstm.setString(2,course_id);
    pstm.setString(3,user_id);
    pstm.executeUpdate();
    cn.close();
    pstm.close();

四、删除数据库数据(前提是有那行数据)

     String  sql = "delete course set course_time = ? where course_id = ? and user_id  = ? and student_id = 3;";
     pstm = cn.prepareStatement(sql);    
     //给问好赋值                              			   
     pstm.setString(1,course_time);                                   
     pstm.setString(2,course_id);
     pstm.setString(3,user_id);
     pstm.executeUpdate();
     cn.close();
     pstm.close();

你可能感兴趣的:(插入,更新三种语法))