引言
上一次,我已经教大家如何通过wampserver集成环境搭建一个局域网内设备均可以访问的本地服务器,以及如何利用在wampserver集成环境下的PHPMyadmin创建可远程访问mysql数据库权限的用户。小伙伴们学会了吗?这一次,我将在这两的基础上,教大家如何利用Android studio 下载对应的mysql驱动jar包 ,通过JDBC连接访问本地服务器上由PHPMyadmin创建的数据库,感兴趣的就看下去吧~!
还没学会这两的,请点击下方传送门~~
JDBC的理解以及需要的驱动jar包
1.什么是JDBC?
JDBC是Java DataBase Connection (java数据库连接)的缩写,
众所周知,java和数据库是两种不同的语言,当想在本机以外的数
据库访问时,需要通过JDBC接口来实现java对数据库的远程连接
2.什么是MySQL Connector for Java?
MySQL Connector for Java 是mysql数据库对java连接mysql数据库
所做的一个接口驱动jar包,我们只需要下载此驱动jar包,就能在Android
studio中通过JDBC来访问远程mysql数据库啦!
JDBC的准备工作
导入jar包
1.复制jar包到项目的libs目录下
2.右键 add as library
a.下载MySQL Connector for Java
打开mysql官网下载或者gitub中搜索JDBC4MYASQL(下载下来,此开源项目中含有mysql-connector-java-5.1.30-bin.jar,且已经配置好)
点击download
选择Community,点击左侧导航下方箭头所指位置
点击下载后,弹出以下页面
点此处,耐心等待下载
将选中的bin文件解压放到桌面,至此驱动jar包下载完成
b.在Android studio中导入MySQL驱动jar包 MySQL Connector for Java
本帅使用的是Android studio,使用eclipse的请面向百度~~
首先,打开Android studio,切换到projec模式
在需要导入jar包的module中新建一个directory,名称为libs,如下
将刚下载好的bin jar包文件从桌面拖入libs在这里插入图片描述
出现如下弹窗,点击OK
此时libs中就有此jar包啦
接下来我们引入jar包驱动的依赖,进行如下操作:
出现以下弹窗
再返回单击鼠标右键,选择analyze dependencies(分析依赖包)
此时会弹出一下弹窗,我们选择OK
至此,jar包依赖已经添加完毕且分析完毕,我们可以通过JDBC来访问我们的远程服务器上的mysql数据库啦!!
(如果不行,直接 implementation files(‘libs/mysql-connector-java-5.1.30-bin.jar’)在文件同级的build gradle下)
或者直接add as library
利用JDBC访问远程服务器上的mysql数据库(采用PHPMyAdmin可视化)
a 在PHPMyadmin中创建数据库
- 打开PHPMyadmin 选择创建的可远程访问的用户登陆(JDBC用该用户访问服务器上的mysql数据库)
-
创建数据库
-
创建表(此处我创建的是user表)
4.创建字段(此处我创建了id,username)
至此,数据库和表已经建立完毕
可以看到此时数据库表user中,并没有数据
至此我们就完成了利用PHPMyadmin创建数据库及表的操作了
接下来,我们需要在Android studio 中写部分相应的JDBC代码,实现服务器mysql数据库的连接
c.在Android studio 中写相应JDBC代码
由于JDBC连接服务器访问远程数据库,其实质即为Socket连接(基于TCP),所以我们要在AndroidManifest.xml中加入网络权限(允许手机联网访问远程数据库,电脑PC直接可以访问),代码如下:
<uses-permission android:name="android.permission.INTERNET"/>
有了此权限以后,可以开始JDBC连接数据库代码的具体编写了!
JDBC连接数据库可以分为以下几步:
-
加载JDBC驱动管理器 {**Class.forName(com.mysql.jdbc.Driver**0)//加载类,名字为myql包下的jdbc的驱动类,为固定写法}
-
连接数据库
此步的具体语法为: Connection connection = DriverManager.getConnection(url, username, password);
其中 username 和password 两参数就是之前咱们构造的可远程访问数据库的用户的用户名和密码(username为root,password 为“”)
其中url又通过**服务器的ip和数据库访问端口(一般为3306)**构成
具体详细端口可以在phpMyAdmin中如图位置找到(此处端口号为3306)
在本地服务器所在的PC端上win +R 打开运行
输入cmd 打开dos命令窗口 输入ipconfig
回车,得到服务器ip地址(我连的的是手机热点,所以选择箭头位置),此处为192.168.43.1
所以url为 “jdbc:mysql://”+ ip + “:” + port +"/"+ mysqldatabase 其中 ip = 192.168.43.160(服务器ip) port = 3306
例如本帅要访问之前新建的数据库test
蓝箭头指的 服务器:mysql:3306 等同于 jdbc:mysql://192.168.43.160:3306(通过jdbc 来访问mysql ,服务器IP 为192.168.43.160,端口号为3306),数据库名为test
则 url = “jdbc:mysql://192.168.43.160:3306/test”(通过JDBC连接Mysql服务器,服务器的ip是192.168.43.160,端口为3306 上的 test数据库)
至此,我们就能根据1.2连接到数据库啦,具体Demo如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
//测试是否连接上数据库demo
public class Demo01 {
public static void main(String[] args){
try {
//加载驱动类(前提:正确引入jar包)
Class.forName("com.mysql.jdbc.Driver");
long start = System.currentTimeMillis();
//通过驱动管理者获取连接,连接到具体数据库(连接对象内部实际上包含了Socke对象,是一个远程的连接,比较耗时!这是Connetion对象管理的一个要点)
//真正开发中,为了提高效率,都会使用连接池来管理连接对象
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
long end = System.currentTimeMillis();
System.out.println(connection);
System.out.println("建立连接,耗时:"+(end-start)+"ms毫秒");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
运行此Demo,得到如下结果
恭喜你,已经成功远程连接到数据库test啦!!
- 开启Statement,执行sql语句
- 得到结果集
- 对结果集进行操作
- 关闭释放资源(栈式关闭,先关闭结果集,再关闭statement,最后关闭连接)
由于篇幅有限,JDBC数据库的访问到这就结束啦!感兴趣的小伙伴门可以继续看我接下来的博客。本帅下一讲将会接着这讲JDBC的增删改查以及JDBC的封装工具类,请大家届时赏光。还有有赞的给个赞,没赞的去我主页多看几篇回来再给个赞,谢谢!