博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA与数据库连接的方法(转摘)
阅读量:6341 次
发布时间:2019-06-22

本文共 3634 字,大约阅读时间需要 12 分钟。

  hot3.png

JAVA与数据库连接方法

                              

_2用JAVA连接数据库主要有两种方式,一是用JDBC-ODBC桥来连接,二是用相关厂商提供的相应驱动程序来连接。

1、JDBC-ODBC桥接

JDBC-ODBC桥接器是用JdbcOdbc.Class和一个用于访问ODBC驱动程序的本地库实现的。对于WINDOWS平台,该本地库是一个动态连接库DLL(JDBCODBC.DLL)。

由于JDBC在设计上与ODBC很接近。在内部,这个驱动程序把JDBC的方法映射到ODBC调用上,这样,JDBC就可以和任何可用的ODBC驱动程序进行交互了。这种桥接器的优点是,它使JDBC目前有能力访问几乎所有的数据库。通行方式如图所示:

应用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC层---数据源 。

JAVA实现例:假定连接SQL SERVER 2000的GoodsSupply数据库。

String url="jdbc:odbc:GoodsSupply";

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动
}catch(ClassNotFoundException e){
System.out.println("Can not load Jdbc-Odbc Bridge Driver");
System.err.print("ClassNotFoundException:");
System.err.println(e.getMessage());
}
Connection con=DriverManager.getConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000认证
DatabaseMetaData dmd=con.getMetaData(); //DMD为连接的相应情况
System.out.println("连接的数据库:"+dmd.getURL());
System.out.println("驱动程序:"+dmd.getDriverName());

Statement sm=con.createStatement();

String command="select "+cName+" from "+tableName;
ResultSet rs=sm.executeQuery(command); //执行查询

do

{
String result=rs.getString(cName); //数据库语言设置为中文,不用转换编码
//result=new String(result.getBytes("ISO-8859-1"),"GB2312");
System.out.println(result);
}while(rs.next());

}

2.使用厂商提供的驱动程序

这种实现方法是直接使用数据库厂商提供的用专用的网络协议创建的驱动程序,通过它可以直接将JDBC API调用转换为直接网络调用。这种调用方式一般性能比较好,而且也是实用中最简单的方法。因为它步需要安装其他的库或中间件。几乎所有的数据库厂商都为他们的数据库提供了这种数据库提供了这种JDBC驱动程序,也可以从第三方厂商获得这些驱动程序。

从网址可以看到所有有用的驱动程序的清单。其结果如图所示: 应用程序---JDBC API---驱动程序---数据源 。

首先要安装JDBC的驱动程序。

JAVA实现例:(以SQL SERVER2000 为例。)

try

{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println("驱动程序已加载");
//SQL SERVER的登陆方式必须为使用SQL SERVER密码登陆认证方式
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://SERVERNAME:1433","USER","PASSWORD");
con.setCatalog("GoodsSupply");
System.out.println("OK,成功连接到数据库");
}catch(Exception ex) {
ex.printStackTrace();
}
Statement sm=con.createStatement();
String command="select "+cName+" from "+tableName;
ResultSet rs=sm.executeQuery(command);
do
{
result=rs.getString(cName);
//result=new String(result.getBytes("ISO-8859-1"),"GB2312");
System.out.println(result);
}while(rs.next());
}

3.总结常用数据库的JAVA连接[zz自]

1. MySQL()mm.mysql-2.0.2-bin.jar

Class.forName( "org.gjt.mm.mysql.Driver" );
cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );

2. PostgreSQL()pgjdbc2.jar

Class.forName( "org.postgresql.Driver" );
cn = DriverManager.getConnection( "jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd );

3. Oracle()classes12.zip

Class.forName( "oracle.jdbc.driver.OracleDriver" );
cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );

4. Sybase()jconn2.jar

Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );
cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd );
//(Default-Username/Password: "dba"/"sql")

5. Microsoft SQLServer()

Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
cn = DriverManager.getConnection( "jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd );

6. Microsoft SQLServer()

Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master", sUsr, sPwd );

7. ODBC

Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd );

8.DB2

Class.forName("com.ibm.db2.jdbc.net.DB2Driver");
String url="jdbc:db2://192.9.200.108:6789/SAMPLE"
cn = DriverManager.getConnection( url, sUsr, sPwd ); 

摘自:        

转载于:https://my.oschina.net/garyun/blog/602804

你可能感兴趣的文章
182在屏幕中实现网格化视图效果
查看>>
Dundas 系列
查看>>
巧用AJAX技术,通过updatePanel控件实现局部刷新
查看>>
20140420技术交流活动总结
查看>>
SaltStack配置salt-api
查看>>
各种情况下block的类型
查看>>
ThinkPHP 3.2.x 集成极光推送指北
查看>>
js作用域链
查看>>
java中如何选择Collection Class--java线程(第3版)
查看>>
为运维人员插上腾飞更远的翅膀!
查看>>
Word 2003中编辑标记与格式标记大讨论
查看>>
调试网页PAIP HTML的调试与分析工具
查看>>
路径工程OpenCV依赖文件路径自动添加方法
查看>>
玩转SSRS第七篇---报表订阅
查看>>
WinCE API
查看>>
Linux常用基本命令[cp]
查看>>
CSS 相对|绝对(relative/absolute)定位系列(一)
查看>>
关于 Nginx 配置 WebSocket 400 问题
查看>>
Glide和Govendor安装和使用
查看>>
Java全角、半角字符的关系以及转换
查看>>