如何从java访问JDBC ODBC数据库中的行计数

问题描述:

嗨,我正在开发一个系统在java中我想获取我的表中存在的所有记录的计数我尝试了很多,但它给了我例外 例外是: - java.sql.SQLException:驱动程序不支持此功能如何从java访问JDBC ODBC数据库中的行计数

这是我的代码如下。

import java.sql.*; 
import javax.swing.JOptionPane; 
import net.proteanit.sql.DbUtils; 
public class myfram2 extends javax.swing.JFrame { 
Connection con; 
PreparedStatement ps;//I have also tried Statement but it give me exception that: 
        //Column not found  
public myfram2() { 
    try{ 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    con= con=DriverManager.getConnection("jdbc:odbc:student"); 

    JOptionPane.showMessageDialog(rootPane,"Connection succeed"); 
    }catch(Exception ex){ 

    ex.printStackTrace(); 

    } 

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
ResultSet rsc; 
    try{ 
    //Here i am using sql count method and also tried max but it doesn't work 
    String sqcount="Select count(stdid)from record"; 

    ps=con.prepareStatement(sqcount); 

    rsc=ps.executeQuery(sqcount); 
    if(rsc.next()){ 

    String getc= rsc.getString("count(stdid)"); 
    searchtx.setText(getc); 

    } 

    } 
    catch(Exception ex){ 

    ex.printStackTrace(); 

    } 


    } 
+0

上线,你得到的异常? – Abubakkar 2013-03-13 05:19:34

+0

on count方法,查询正确但驱动程序不支持count max或sum方法,是否有其他驱动程序可用于访问数据库连接 – 2013-03-13 05:40:26

你可以试试下面的方法,

Select count(stdid) c from record 

String getc = rsc.getString("c"); 

要么你必须使用你的当前代码:

String getc = rsc.getString(1); 

或变化:

String sqcount = "Select count(stdid) countStdID from record"; 

,然后:

String getc = rsc.getString("countStdID"); 

编辑:1

必须加载从驱动程序类的Driver Class第一然后得到连接,并在你的程序的连接。

编辑2:

您必须使用

rsc = ps.executeQuery(); // instead of rsc = ps.executeQuery(sqcount); 

因为PreparedStatement是一个预编译的一套查询

+0

是否有任何其他驱动程序可用于访问数据库连接? ,因为我得到错误,该驱动程序不支持此方法 – 2013-03-13 05:37:09

+0

@AbdullahSyed目前使用哪个驱动程序?我没有看到你的问题中加载驱动类的代码。 – Bhushan 2013-03-13 05:38:54

+0

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); con = con = DriverManager.getConnection(“jdbc:odbc:student”); – 2013-03-13 05:47:13