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]]
----------------解决方案--------------------------------------------------------
很好,表示感谢。
----------------解决方案--------------------------------------------------------
采用非桥接方式
推荐使用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 ...
怎么不行啊!我的出现了这个:
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 包加入进来了, 我也碰到与楼上所说的情况.谢谢. ----------------解决方案--------------------------------------------------------