import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.*;public class test { public static void main(String[] args) {
//String url="jdbc:odbc:GoodsSupply";
String url="jdbc:odbc:test";
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 {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //加载驱动
}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,"sa",""); //使用SQL-SERVER2000认证
DatabaseMetaData dmd=con.getMetaData(); //DMD为连接的相应情况
System.out.println("连接的数据库:"+dmd.getURL());
System.out.println("驱动程序:"+dmd.getDriverName());
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;
//command="select * 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(SQLException ex) {
System.out.println("SQLException:");
while(ex!=null) {
System.out.println("Message:"+ex.getMessage());
ex=ex.getNextException();
}
}catch(Exception e) {
//System.out.println("IOException");
}
}
}
编译通过,但运行时
can not load jdbc-odbc bridge driver
ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
SQLException:
Message:No suitable driver我的classpath是这样配置的:
c:\jdk\lib\tools.jar;c:jdk\jre\lib\rt.jar;c:\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;c:\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;c:\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;
import java.io.InputStreamReader;
import java.sql.*;public class test { public static void main(String[] args) {
//String url="jdbc:odbc:GoodsSupply";
String url="jdbc:odbc:test";
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 {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //加载驱动
}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,"sa",""); //使用SQL-SERVER2000认证
DatabaseMetaData dmd=con.getMetaData(); //DMD为连接的相应情况
System.out.println("连接的数据库:"+dmd.getURL());
System.out.println("驱动程序:"+dmd.getDriverName());
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;
//command="select * 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(SQLException ex) {
System.out.println("SQLException:");
while(ex!=null) {
System.out.println("Message:"+ex.getMessage());
ex=ex.getNextException();
}
}catch(Exception e) {
//System.out.println("IOException");
}
}
}
编译通过,但运行时
can not load jdbc-odbc bridge driver
ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
SQLException:
Message:No suitable driver我的classpath是这样配置的:
c:\jdk\lib\tools.jar;c:jdk\jre\lib\rt.jar;c:\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;c:\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;c:\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;
如果想用前者要想你的程序那样下载相应的jdbc驱动,这时url也要用相应产品的url,而不是你那样String url="jdbc:odbc:test";
,每种数据库都不一样,具体是什么我也忘了,去baidu一下就行了。
如果想用后者,可以不用下载相应驱动,driverName用sun.jdbc.odbc.JdbcOdbcDriver,url用你原来的格式,这时你要去数据源那里配置odbc数据源。
推荐用前者,速度会快一些,省掉桥接的时间。
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
我改的别人的程序