JAVA与数据库连接方法(二)[转]

   现在介绍第二种方法,用关厂商提供的相应驱动程序来连接。

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

    从网址http://industry.Java.sun.com/products/jdbc/drivers/可以看到所有有用的驱动程序的清单。其结果如图所示:

    应用程序---JDBC API---驱动程序---数据源

    这里首先要安装JDBC的驱动程序,推荐SP2版本的,可从微软网站上下载
    http://www.microsoft.com/downloads/details.aspx?FamilyID=9f1874b6-f8e1-4bd6-947c-0fc5bf05bf71&DisplayLang=en 下载最下面的SETUP.EXE

    这个驱动程序要配合SQL SERVER2000 SP3A,相应下载URL为
    http://www.microsoft.com/china/sql/downloads/sp3.asp 下载 chs_sql2ksp3.exe

    如果用JAVA SDK直接编译运行的话需要设置环境变量,将安装好的JDBC驱动里面的LIB三个文件设置为环境变量:
    classpath: 
    D:/program  files/Microsoft  SQL  Server/jdbc/lib/msbase.jar;
    D:/program  files/Microsoft  SQL  Server/jdbc/lib/mssqlserver.jar;
    D:/program  files/Microsoft  SQL  Server/jdbc/lib/msutil.jar;

    安装即可用微软的驱动程序连接数据库了,相应代码与前面基本相同:

import java.sql.*;
import java.io.*;
public class DBColumn {

 public static void main(String[] args) {
  Connection con=null;
  Statement sm=null;
  String command=null;
  ResultSet rs=null;
  String tableName=null;
  String cName=null;
  String result=null;
  BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
  try
  {
   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   System.out.println("驱动程序已加载");
   //SQL SERVER的登陆方式必须为使用SQL SERVER密码登陆认证方式
   con=DriverManager.getConnection("jdbc:microsoft:sqlserver://SERVERNAME:1433","USER","PASSWORD"); 
   con.setCatalog("GoodsSupply");
   System.out.println("OK,成功连接到数据库");
  }catch(Exception ex) {
   ex.printStackTrace();
  }
  try
  {
   sm=con.createStatement();
   System.out.println("输入表名");
   tableName=input.readLine();
   while(true) {
    System.out.println("输入列名(为空时程序结束):");
    cName=input.readLine();
    if(cName.equalsIgnoreCase(""))
     break;
    command="select "+cName+" from "+tableName;
    rs=sm.executeQuery(command);
    if(!rs.next())
     System.out.println("表名或列名输入有误");
    else {
     System.out.println("查询结果为:");
     do
     {
      result=rs.getString(cName);
      //result=new String(result.getBytes("ISO-8859-1"),"GB2312");
      System.out.println(result);
     }while(rs.next());
    }
   }
  }catch(Exception ex) {
   ex.printStackTrace();
  }
 }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值