当前位置: 代码迷 >> Java相关 >> Java连接数据库主要有两种方式
  详细解决方案

Java连接数据库主要有两种方式

热度:201   发布时间:2008-01-18 18:06:52.0
Java连接数据库主要有两种方式
Java连接数据库主要有两种方式

一、方式介绍
方式一、使用jdbc-odbc桥连接
这种方式是不需要jdbc驱动程序的,只需要在控制面板中建立一个ODBC数据源就可以了。注意的是,建立数据源是在系统DSN中进行的,但请切记所建立的数据源的名称。
方式二、使用sql-server专用的驱动程序(即SQL Server 2000 driver for JDBC)进行连接,或称非jdbc-odbc桥连接方式。
还需下载SQL Server 2000的补丁SQL2000-KB884525-SP4-x86- CHS.EXE和SQL Server 2000 driver for JDBC。使用专用连接方式访问速度比较快一些,而且不需要再控制面板中添加数据源

二、Java连接数据库的一般步骤(以Sql Server 2000为例)
1、加载驱动程序
方式一:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
方式二:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

2、创建数据库的连接
方式一:
Connection dbConn = DriverManager.getConnection("jdbc:odbc:DSource");
其中,DSource是你建立数据源时,取的数据源名。
方式二:
String dbUrl = "jdbc:microsoft:sqlserver://127.0.0.1:1433; DatabaseName=pubs"; /*pubs是自己选的默认的数据库*/
String userName = "sa";
String userPass = "saPassword";
Connection dbConn = DriverManager.getConnection(dbUrl, username, userPass );

温馨提示:至此,就、你的Java已经顺利连接到Sql Server 2000数据库了!
(以下两步为实际应用,就不做阐述)

3、创建语句对象
4、处理查询

三、具体连接代码,测试数据库是否连接成功
方式一:jdbc-odbc 桥连接方式
package dbtest;
import java.sql.Connection;
import java.sql.DriverManager;

public class TestDB {
     public static void main(String[] args) {
          String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
          String c ;
          Connection dbConn;
          try {
               Class.forName(driverName);
               dbConn = DriverManager.getConnection(connection );
               System.out.println(Congratulation, Connection Successful!");
          }
          catch (Exception e) {
               e.printStackTrace();
          }
     }
}

方式二;非 jdbc-odbc 桥连接方式
package dbtest;

import java.sql.Connection;
import java.sql.DriverManager;

public class TestDB {
     public static void main(String[] args) {
String driverName ="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://127.0.0.1:1433; DatabaseName=pubs";
     String userName = "sa";
String userPwd = "ethip";
Connection dbConn;
     try {
               Class.forName(driverName);
               dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
               System.out.println("Congratulation, Connection Successful!");
          }
     catch (Exception e) {
               e.printStackTrace();
          }
}

四、数据库连接错误浅析
如果以上的代码运行后,输出"Congratulation ,connection Successful! ",那就代表一切正常,连接数据库成功,你可以进行Statement、ResultSet的操作了;反之,一定是出现了相应的异常。
如果提示错误"Error establishing socket",请根据之前的说明安装相应的SQL Server 2000补丁即可。如果提示"ClassNotFoundException",那一定是 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 该段代码拼写有误,或者是SQL Server 2000 Driver For JDBC 的Lib目录下的三个.jar文件(msbase.jar、mssqlserver.jar、msutil.jar,他们是所需的JDBC驱动的核心
)未加入到classpath中,当然如果用的是eclipse等IDE可以在创建java文件时载入。

五、更多信息
Author: Ethip
E-mail: shengvsjun@qq.com


我乐网([url=http://www.56.com]www.56.com[/url])CEO周娟

[[italic] 本帖最后由 Ethip 于 2008-1-22 18:50 编辑 [/italic]]
搜索更多相关的解决方案: 数据库  Java  SQL  数据源  Server  

----------------解决方案--------------------------------------------------------
很好,表示感谢。
----------------解决方案--------------------------------------------------------
采用非桥接方式
推荐使用sql-server专用的驱动程序进行连接!
----------------解决方案--------------------------------------------------------
【重要补充】JAVA与数据库连接的方法
更多连接数据库的方法请查看
[url]http://www.newasp.net/tech/java/15826[/url]
----------------解决方案--------------------------------------------------------
怎么不行啊!我的出现了这个:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at testJDBC.TestDB.main(TestDB.java:13)

----------------解决方案--------------------------------------------------------
需求```希望正确 的
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]林中剑影[/un] 在 2008-1-29 14:38 的发言:[/bo]

怎么不行啊!我的出现了这个:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivilege ...

楼主的是没有问题的,只是你没有导入驱动的那个jar包。把你的classpath指向你的那个驱动包,或者在你的工程里面导入那个jar包,推荐使用后者。
----------------解决方案--------------------------------------------------------
Good!!!
----------------解决方案--------------------------------------------------------
回复 7楼 菜鸟也疯狂
请问怎么把那个Jar 包加入进来了, 我也碰到与楼上所说的情况.谢谢.
----------------解决方案--------------------------------------------------------
  相关解决方案