首先需要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();