前言
上一节的代码没有测试通过,暂时没有找到问题,这节咱用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){ } } }
运行测试