| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8804 人关注过本帖
标题:Java连接数据库主要有两种方式
只看楼主 加入收藏
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
 问题点数:0 回复次数:8 
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: [email=shengvsjun@]shengvsjun@[/email]


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

[[italic] 本帖最后由 Ethip 于 2008-1-22 18:50 编辑 [/italic]]

我乐网(www.56.com)CEO周娟.jpg (46.69 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 数据库 Java SQL 数据源 Server 
2008-01-18 18:06
天涯海角
Rank: 2
等 级:新手上路
威 望:3
帖 子:507
专家分:0
注 册:2005-10-21
收藏
得分:0 
很好,表示感谢。

我的未来不是梦!
2008-01-18 22:19
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
采用非桥接方式
推荐使用sql-server专用的驱动程序进行连接!
2008-01-18 22:29
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
【重要补充】JAVA与数据库连接的方法
更多连接数据库的方法请查看
[url]http://www.[/url]
2008-01-22 19:22
林中剑影
Rank: 1
来 自:广州
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-11-3
收藏
得分:0 
怎么不行啊!我的出现了这个:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    at (Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at (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)

好好学习,天天向上!
2008-01-29 14:38
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
收藏
得分:0 
需求```希望正确 的

准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2008-01-29 15:57
菜鸟也疯狂
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2007-3-20
收藏
得分:0 
[bo]以下是引用 [un]林中剑影[/un] 在 2008-1-29 14:38 的发言:[/bo]

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

楼主的是没有问题的,只是你没有导入驱动的那个jar包。把你的classpath指向你的那个驱动包,或者在你的工程里面导入那个jar包,推荐使用后者。

2008-02-01 10:34
tomneusoft
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-4-22
收藏
得分:0 
Good!!!
2008-04-17 09:27
lxd0980
Rank: 7Rank: 7Rank: 7
来 自:湖南长沙
等 级:黑侠
帖 子:166
专家分:505
注 册:2011-3-27
收藏
得分:0 
回复 7楼 菜鸟也疯狂
请问怎么把那个Jar 包加入进来了, 我也碰到与楼上所说的情况.谢谢.
2011-04-12 15:49
快速回复:Java连接数据库主要有两种方式
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019050 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved