jdbc数据库连接

jdbc连接数据库步骤
1.加载初始化对应数据库的驱动
2.构建数据库的URL
3.驱动管理器连接数据库

传统的使用jdbc来访问数据库的流程为:


Class.forName(“com.mysql.jdbc.Driver”);
String url = “jdbc:mysql://localhost:3306/test?user=root&password=123456″;
Connection con = DriverManager.getConnection(url);

Class.forName(“com.mysql.jdbc.Driver”);


private String dbUrl="jdbc:mysql://localhost:3306/sushe";
private String dbUser="root";
private String dbPassword="";
Connection con=DriverManager.getConnection(dbUrl,dbUser,dbPassword);


最开始使用的时候,不明白为什么首先要加载一个驱动类,之后就可以取得了Connection了,很好奇DriverManager是怎么获得那个驱动类的信息,后来看了下

com.mysql.jdbc.Driver这个类的源代码,豁然开朗了。原来在com.mysql.jdbc.Driver类中有这么一段静态初始化代码:
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException(“Can’t register driver!”);
}
}
也就是,在Class.forName加载完驱动类,开始执行静态初始化代码时,会自动新建一个Driver的对象,并调用DriverManager.registerDriver把自己注册到DriverManager

中去。

ps1: Class.forName(String) 与ClassLoader.loadClass(String)的区别
Class.forName(String): 加载类,并且执行类初始化;可以通过Class.forName(String, boolean, ClassLoader)第二个参数来仅仅加载类不执行初始化;
ClassLoader.loadClass(String): 仅仅加载类,不执行类初始化;
-----------------------------------------------------------------------------------------------------
jdbc
jdbc (Java Database Connectivity)是Java语言访问各种不同数据库的一套API
JDBC API采用接口和实现分离的思想设计了Java数据库编程的框架,JDBC API就是java.sql及javax.sql包中类和接口。这些包中接口的实现类就叫做数据库驱动程序,由

数据库的厂商提供,为了使客户端程序独立于特定的数据库驱动程序,JDBC规范建议开发者使用基于接口的编程方式,即尽量使应用仅依赖java.sql及javax.sql中的接口

和类。
JDBC驱动程序的四种类型:
1.       第一种类型的驱动程序的实现是通过将JDBC的调用全部委托给其它编程接口来实现的,比如ODBC。这种类型的驱动程序需要安装本地代码库,即依赖于本地的程

序,所以便携性较差。比如JDBC-ODBC桥驱动程序
2.       第二种类型的驱动程序的实现是部分基于Java语言的。即该驱动程序一部分是用Java语言编写,其它部分委托本地的数据库的客户端代码来实现。同类型1的驱动

一样,该类型的驱动程序也依赖本地的程序,所以便携性较差
3.       第三种类型的驱动程序的实现是全部基于JAVA语言的。该类型的驱动程序通常由某个中间件服务器提供,这样客户端程序可以使用数据库无关的协议和中间件服

务器进行通信,中间件服务器再将客户端的JDBC调用转发给数据库进行处理
4.       第四种类型的驱动程序的实现是全部基于JAVA语言的。该类型的驱动程序中包含了特定数据库的访问协议,使得客户端可以直接和数据库进行通信

jdbc主要要实现的接口
DriverManager//是driver的管理类是一个工厂,根据不同的jdbc url生产driver,使用生产出的diriver连接数据库。
Driver//有厂商实现,连接数据的库的实际操作者。                         
Connection//连接数据库成功后的一个连接对象。                    
Statement//执行sql的对象                            
Resultset//执行sql后生成的结果集



 

如果要使用哪么数据库要下载对应的数据库驱动。

MySQL(jar包:mysql-connector-java-3.1.11-bin.jar 类名:com.mysql.jdbc.Driver):http://dev.mysql.com/downloads/connector/j/

Access(类名:sun.jdbc.odbc.JdbcOdbcDriver):javaSE中自带不需要下载

Oracle(jar包:ojdbc14.jar 类名:oracle.jdbc.driver.OracleDriver):http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html

SQL Server(jar包:msbase.jar mssqlserver.jar msutil.jar 类名:com.microsoft.jdbc.sqlserver.SQLServerDriver):http://www.microsoft.com/downloads/details.aspx


--------------------------------------------------------------------------------------------------------
jdbc URL

JDBC URL的概念
JDBC URL提供了一种标识数据库的方法,可以使相应的驱动程序能识别该数据库并与之建立连接。实际上,驱动程序编程员将决定用什么JDBC URL来标识特定的驱动程序。

用户不必关心如何来形成JDBC URL,它们只须使用与所用的驱动程序一起提供的URL即可。JDBC的作用是提供某些约定,驱动程序程序员在构造它们的JDBC URL时应该遵循

这些约定。
(1)由于JDBC URL要与各种不同的驱动程序一起用,因此,这些约定应非常灵活。首先,它们应允许不同的驱动程序使用不同的方案来命名数据库。例如,odbc子协议允

许(但不是要求)URL含有属性值。

(2)JDBC URL应允许驱动程序程序员将一切所需的信息编入其中。这样就可以让要与数据库对话的applet打开数据库连接,而无需要求用户去做任何系统管理工作。

(3)JDBC URL应允许某种程度的间接性。也就是说,JDBC URL可指向逻辑主机或数据库名,而这种逻辑主机或数据库名将由网络命名系统动态地转换为实际名称。这可以

使系统不必将特定主机声明为JDBC名称的一部分。网络命名服务(例如:DNS,NIS和DCE)有多种,而对于使用哪种命名服务并无限制。

2.JDBC URL格式

JDBC URL的标准语法如下所示。它由三个部分组成,各部分间用冒号分隔。

jdbc:<子协议>:<子名称>

JDBC URL的三个部分可以分解如下:

(1)jdbc——协议。JDBC URL中的协议总是jdbc.

(2)<子协议>——驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称。子协议名的典型示例是:ODBC,该名称是为用于指定ODBC风格的数据

资源名称的URL专门保留。例如,为了通过JDBC-ODBC桥来访问某个数据库,可以用如下的所示的UR:

jdbc:odbc:mydatabase

(3)<子名称>——一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息。如果数据库是通过Internet来访问的

,在JDBC URL中应将网络地址作为子名称的一部分包括进去,且必须遵循如下所示的标准URL命名约定://主机名:端口/子协议

-----------------------------------------------------------------------------------
常见数据库的jdbc URL示例:
1. MySQL url示例:"jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
2. Access url示例:"jdbc:odbc:HANFENG"

 

3. Oracle url示例:"jdbc:oracle:thin:@localhost:1521:orcl"

4. SQL Server url示例:"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"

 

5. DB2  url示例:"jdbc:db2://localhost:5000/sample"
6. Sybase url示例:"jdbc:sybase:Tds:localhost:5007/tsdata"
7. Informix url示例:"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver"


8. PostgreSQL url示例:"jdbc:postgresql://localhost/soft"

----------------------------------------------------------------------------------

1. MySQL
JDBC URL:jdbc:mysql://dbip:port/databasename
       dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。
       port –为数据库的监听端口,需要看安装时的配置,缺省为3306。
       databasename –数据库的名字。
举例如果要访问本地的数据库allandb,端口1433,那么URL写法如下:jdbc:mysql://localhost:1433/allandb

2. Access
JDBC URL:jdbc:odbc:datasourcename
   说明:该驱动只能工作在Windows系统中,首先需要在操作系统中建立一个可以访问Access数据库的本地数据源(ODBC)。
如果名字为allandb,那么URL写法如下:jdbc:odbc:allandb

3. Oracle
JDBC URL:jdbc:oracle:thin:@dbip:port:databasename
     dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。
     port –为数据库的监听端口,需要看安装时的配置,缺省为1521。
     databasename –为数据库的SID,通常为全局数据库的名字。
举例如果要访问本地的数据库allandb,端口1521,那么URL写法如下:jdbc:oracle:thin:@localhost:1521:allandb

 

4. SQL Server
JDBC URL:jdbc:microsoft:sqlserver://dbip:port;DatabaseName=databasename
      dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。
      port –为数据库的监听端口,需要看安装时的配置,缺省为1433。
      databasename –数据库的名字。
举例如果要访问本地的数据库allandb,端口1433,那么URL写法如下:jdbc: microsoft: sqlserver:@localhost:1433; DatabaseName =allandb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值