ConnectDB
本篇以访问MySql数据库为例,阐述JDBC怎样连接Database>
为了要连接MySQL Database,必须有MySQL JDBC驱动程序,将下载的mysql-connector-java-*.jar加入至CLASSPATH中,这里先以Java Class来示范怎样连接MySQL,Java Class API位于java.sql包中.
要连接MySQL,必须的几个动作:
.加载和注册驱动程序
通过java.lang.Class包的forName()来加载并向DriverManager注册JDBC驱动程序(驱动程序会自动通过DriverManager.registerDriver()方法注册),MySQL的驱动程序类别是com.mysql.jdbc.Driver,参考下面代码:
如果找不到com.mysql.jdbc.Driver,就会抛出ClassNotFoundException异常,这是确定你的CLASSPATH中是否包含了mysql-connector-java-*.jar的位置.
.提供JDBC URL
JDBC URL 定义了连接数据库时的协定,子协定,资料来源等信息:
协定:子协定:资料来源类别
协定在JDBC中总是jdbc的开始;子协定是连接的驱动程序或是数据库管理系统名称,使用MySQL的话是mysql;资料来源类别表示找出数据库来源的位置;MySQL的JDBC URL的格式如下:
jdbc:mysql://主机名称:连接埠/数据库名称?参数1=值1&参数2=值2
主机名称可以是本地localhost或是其他网络连接主机,连接埠为3306,假如要连接GUSETBOOK数据库,并指明访问的名称和密码:
jdbc:mysql://localhost:3306/GUESTBOOK?user=myname&password=123456
如果要使用中文存取的话,还必须给定参数userUnicode及characterEncoding,表明是否使用UNICODE,并指定位元编码方式,例如:
jdbc:mysql://localhost:3306/GUESTBOOK?user=myname&password=123456&userUnicode=true&characterEncoding=GB18030
.从DriverManager取得Connection
要连接数据库,我们可以从DriverManager要求并取得Connection连接串,可以直接给它JDBC URL作为参数并取回Connection连接串
取得Connection连接串后,可以测试与数据库的连接是否关闭(isClosed()).
getConnction()方法也提供给定用户名称与密码的方式来定义每个参数;例如:
下面举例说明连接一个数据库(DBConnectionDemo.java)
本篇以访问MySql数据库为例,阐述JDBC怎样连接Database>
为了要连接MySQL Database,必须有MySQL JDBC驱动程序,将下载的mysql-connector-java-*.jar加入至CLASSPATH中,这里先以Java Class来示范怎样连接MySQL,Java Class API位于java.sql包中.
要连接MySQL,必须的几个动作:
.加载和注册驱动程序
通过java.lang.Class包的forName()来加载并向DriverManager注册JDBC驱动程序(驱动程序会自动通过DriverManager.registerDriver()方法注册),MySQL的驱动程序类别是com.mysql.jdbc.Driver,参考下面代码:
try{ Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundException e) { System.out.println(" Not Find The MySQL Database Driver"); } |
如果找不到com.mysql.jdbc.Driver,就会抛出ClassNotFoundException异常,这是确定你的CLASSPATH中是否包含了mysql-connector-java-*.jar的位置.
.提供JDBC URL
JDBC URL 定义了连接数据库时的协定,子协定,资料来源等信息:
协定:子协定:资料来源类别
协定在JDBC中总是jdbc的开始;子协定是连接的驱动程序或是数据库管理系统名称,使用MySQL的话是mysql;资料来源类别表示找出数据库来源的位置;MySQL的JDBC URL的格式如下:
jdbc:mysql://主机名称:连接埠/数据库名称?参数1=值1&参数2=值2
主机名称可以是本地localhost或是其他网络连接主机,连接埠为3306,假如要连接GUSETBOOK数据库,并指明访问的名称和密码:
jdbc:mysql://localhost:3306/GUESTBOOK?user=myname&password=123456
如果要使用中文存取的话,还必须给定参数userUnicode及characterEncoding,表明是否使用UNICODE,并指定位元编码方式,例如:
jdbc:mysql://localhost:3306/GUESTBOOK?user=myname&password=123456&userUnicode=true&characterEncoding=GB18030
.从DriverManager取得Connection
要连接数据库,我们可以从DriverManager要求并取得Connection连接串,可以直接给它JDBC URL作为参数并取回Connection连接串
try{ String url="jdbc:mysql://localhost:3306/GUSTBOOK?"+"user="+strusername+ "&password"+strpassword; Connection conn=DriverManager.getConnection(url); if(!conn.isClosed()) System.out.println("connection sucessfully"); conn.close(); } catch(SQLException e) { .... } |
取得Connection连接串后,可以测试与数据库的连接是否关闭(isClosed()).
getConnction()方法也提供给定用户名称与密码的方式来定义每个参数;例如:
String url="jdbc:mysql://localhost:3306/GUSTBOOK"; String user="Myname"; String password="123456"; Connection conn=DriverManager.getConnction(url,user,password); |
package onlyfun.mydbconnection; import java.sql.*; public class DBConnectionDemo{ public static void main(String[] args){ String driver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/GUSTBOOK"; String username="myname"; String password="123456"; try{ Class.forName(driver); Connection conn=DriverManager.getConnection(url,username,password); if(!conn.isClosed()) System.out.println("数据库连接成功"); conn.close(); } catch(ClassNotFoundException e) { System.out.println("找不到指定驱动程序:"+driver); } catch(SQLException e) { e.printStactTrace(); } } |