1.搭建JDBC开发环境
1.1安装数据库系统
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
我个人安装的是Mysql8.0。
以下是Mysql8.0安装教程的相关连接(安装到第36步即可):
https://mp.weixin.qq.com/s/BdkGg-dsDPEcJ_oaom_pLA
1.2安装驱动程序
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。
简单来说,JDBC是JAVA语言和数据库系统软件之间的桥梁。
不同数据库系统软件需要下载不同的JDBC。
为了节省大家的查找时间,我将我正在使用MySQL的JDBC驱动程序mysql-connector-java-8.0.11.jar共享给大家。
百度云链接:https://pan.baidu.com/s/1luU4MwrLif_rtNhy0V6x2w
提取码:xgc0
备用地址:https://static.runoob.com/download/mysql-connector-java-8.0.16.jar
下载完成JDBC驱动程序后,将该驱动程序mysql-connector-java-8.0.11.jar拷贝到GlassFish Server 的安装路径下(可以通过在net beans的工具-》服务器,看到服务器的安装路径)的lib子目录下即可
2.连接数据库
JDBC驱动有两个类负责与数据库建立连接。
1.DriverManager,它是JDBC API提供为数不多的实际类之一。
2.JDBC Driver类,它是由独立厂商提供的。
每个JDBC驱动程序使用一个专门的JDBC URL作为自我标识的一种方法。
DriverManager通过JDBC URL来选择正确的驱动程序。
JDBC URL的格式如下:
jdbc:子协议:数据库定位器
子协议与JDBC驱动程序有关,可以是ODBC、Oracle、DB2等。数据库定位器则是标识数据库的,包括主机名、端口和数据库系统名。
如果使用的是MySQL数据库,那么JDBC URL则是:
jdbc:mysql://机器名/数据库名
如果使用的是GlassFish内置的Java DB数据库,那么JDBC URL则是:
jdbc:derby://机器名/数据库名
如果使用的是Oracle数据库,那么JDBC URL则是:
jdbc:oracle:thin@机器名:端口名:数据库名
以下我将通过一个实例来说明JDBC连接数据库。首先创建web应用“DataWeb”来包含这篇博客的所有演示代码。
1:test.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
java.sql.Connection conn=null;
java.lang.String strConn;
try{
//myslq8.0以上需要在URLjdbc:mysql://localhost:3306/test加上?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong否则会出错。
conn=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong","root","");
%>
连接mysql数据库成功!
<%
}catch(java.sql.SQLException e){
out.println(e.toString());
}finally{
if(conn!=null) conn.close();
}
%>
</body>
</html>
程序运行结果
第一次遇到了这个错误,经过查询是说mysql版本和JDBC驱动程序的版本没有对应上。比如MySQL是8.0的话,JDBC需要mysql-connector-java-8.0.11.jar及以上JDBC版本才可以。经过一番调整,还是没有解决我的问题。
最后,在一篇博客上看到,是SQL连接语句的问题。mysql8.0及以上的版本需要在URL:jdbc:mysql://localhost:3306/test加上?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong否则会出错。
mysql5.0:
conn=java.sql.DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”,“root”,"");
mysql8.0:
conn=java.sql.DriverManager.getConnection(“jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong”,“root”,"");
成功解决了上面的问题,然后又出现了一个小问题。
这个问题比较容易,在mysql查询语句中,输入create database test 即可。
最后终于成功了!
总结:首先调用DriverManager对象的getConnection()方法来获取数据库连接,getConnection()方法的第一个参数为JDBC URL,"jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong"代表访问的数据库类型为MySQL,数据库位于主机localhost上,数据库名为test,字符编码为UTF-8等。getConnection()方法的后两个参数代表访问数据库使用的用户名和密码。
说明:需要特别注意的是,在数据库使用完毕后,务必确保将数据库连接关闭。