学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

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

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]]
附件: 您所在的用户组无法下载或查看附件

TOP

很好,表示感谢。
我的未来不是梦!

TOP

采用非桥接方式

推荐使用sql-server专用的驱动程序进行连接!

TOP

【重要补充】JAVA与数据库连接的方法

更多连接数据库的方法请查看
[url]http://www.newasp.net/tech/java/15826.html[/url]
Java Lover QQ Group : 64666806

TOP

怎么不行啊!我的出现了这个:
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)
好好学习,天天向上!

TOP

需求```希望正确 的
想用3年成为编程高手10年都成不了,准备用10年成为编程高手的3年就成为了编程高手

TOP

引用:
以下是引用 林中剑影 在 2008-1-29 14:38 的发言:

怎么不行啊!我的出现了这个:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivilege ...
楼主的是没有问题的,只是你没有导入驱动的那个jar包。把你的classpath指向你的那个驱动包,或者在你的工程里面导入那个jar包,推荐使用后者。

TOP

Good!!!

TOP

发新话题