链接数据库须要通过如下几个步骤: java
一、 根据驱动程序名称driverName,利用Java反射机制,加载数据库驱动程序; mysql
二、 根据链接字符串connectionURL,从驱动管理器中获取数据库链接对象; sql
三、 利用数据库链接对象进行数据库操做。 数据库
代码以下: 服务器
Class providerClass = Class.forName(driverName); Connection = DriverManager.getConnection(connectionURL, username,password); return connection ;
不一样数据库的驱动程序和链接字符串: 网络
MySQL: oracle
驱动程序名称 app |
com.mysql.jdbc.Driver ide |
链接字符串 sqlserver |
jdbc:mysql://<IP>/<DB>?useUnicode=true&characterEncoding=GBK |
SQL Server:
驱动程序名称 |
com.microsoft.jdbc.sqlserver.SQLServerDriver |
链接字符串 |
jdbc:microsoft:sqlserver://<IP>:1433;DatabaseName=<DB> |
Oracle:
驱动程序名称 |
oracle.jdbc.driver.OracleDriver |
链接字符串 |
jdbc:oracle:thin:@<IP>:1521:<DB> |
DB2:DB2的JSP链接方式有APP驱动、NET驱动和JCC驱动三种方式。
APP方式:
驱动程序名称 |
COM.ibm.db2.jdbc.app.DB2Driver |
链接字符串 |
jdbc:db2:<DB> |
NET方式:
驱动程序名称 |
COM.ibm.db2.jdbc.net.DB2Driver |
链接字符串 |
jdbc:db2://<IP>:6789/<DB> |
JCC方式:
驱动程序名称 |
COM.ibm.db2.jdbc.jcc.DB2Driver |
链接字符串 |
jdbc:db2://<IP>:50000/<DB> |
链接数据库常见问题:
一、 系统抛出异常java.lang.ClassNotFoundException。例如:
java.lang.ClassNotFoundException:com.mysql.jdbc.Driver |
这说明试图初始化驱动程序的时候出错,在Class.forName()中,Java虚拟机没法在类路径中找到指定驱动名称的驱动类。须要把包含驱动类的 mysql-connector-java-x.xx.xx-bin.jar 文件放置在运行的类路径WEB-INF/lib下。
二、 系统抛出异常java.net.SocketException:Connection Refused,链接被拒绝。
1) 若是数据库服务器未开启或没法创建链接,则抛出异常以下:
java.net.SocketException:java.net.ConnectionException:Connection refused:connect |
首先肯定链接字符串中的URL配置中IP是否正确,端口是否正确,同时须要确保服务器已经启动接受服务请求。
2) 若是肯定服务器已经启动,那么能够查看配置,看数据库对外服务的端口是否为默认端口,抑或有所改动。
3) 若是服务器已经启动,并且采用了默认端口,那么须要查证服务器上是否安装了网络防火墙,阻断了数据库链接请求。
三、 若是调用DriverManager.getConnection(connectionURL,username,password)中username和password不正确,那么驱动程序将抛出以下异常:
java.sql.SQLException:Access denied for user ‘root’@’localhost’(using password:YES) |
须要修改用户名和口令后从新进行链接。
四、 因为数据库驱动和数据库服务器的版本不匹配,致使了链接失败。