java select语句怎么写,JAVA中的SELECT语句

public void search() throws Exception{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String url = "jdbc:odbc:******";

String user = "*****";

String pass = "*****";

Connection con = DriverManager.getConnection(url, user, pass);

Statement state = con.createStatement();

ResultSet rs = state.executeQuery("");

ResultSetMetaData rsmetadata = rs.getMetaData();

int columns = rsmetadata.getColumnCount();

DefaultTableModel dtm = new DefaultTableModel();

Vector column_name = new Vector();

Vector data_rows = new Vector();

for (int i=1; i

column_name.addElement(rsmetadata.getColumnName(i));

}

dtm.setColumnIdentifiers(column_name);

while(rs.next()){

data_rows = new Vector();

for (int j=1; j

data_rows.addElement(rs.getString(j));

}

dtm.addRow(data_rows);

}

tblPatient.setModel(dtm);

}

On my ResultSet rs = state.executeQuery() I used this SQL

"SELECT "

+ "pIDNo AS 'Patient ID',"

+ "pLName AS 'Last Name',"

+ "pFName AS 'First Name',"

+ "pMI AS 'M.I.',"

+ "pSex AS 'Sex',"

+ "pStatus AS 'Status',"

+ "pTelNo AS 'Contact No.',"

+ "pDocID AS 'Doctor ID',"

+ "pAddr AS 'St. No.',"

+ "pStreet AS 'St. Name',"

+ "pBarangay AS 'Barangay',"

+ "pCity AS 'City',"

+ " pProvince AS 'Province',"

+ " pLNameKIN AS 'Last Name',"

+ "pFNameKIN AS 'First Name',"

+ "pMIKIN AS 'M.I.',"

+ "pRelationKIN AS 'Relation',"

+ "pTotalDue AS 'Total Due'"

+ " FROM dbo.Patients");

First I run this line (pTotalDue didn't come up to jTable.)

And on my second attempt to display it I do this:

"SELECT pTotalDue AS 'Total Due' FROM dbo.Patients"

Now I tried this one, and I think something's really wrong about my codes. BTW this column has MONEY DATA TYPE

why does it didn't show to my JTable? could anyone tell me what is the problem with my codes?

(Problem in the answer that has given to me)

public class QueryOnWorkerThread extends SwingWorker{

private final JTable tableToUpdate;

public QueryOnWorkerThread( JTable aTableToUpdate ) {

tableToUpdate = aTableToUpdate;

}

@Override

protected TableModel doInBackground() throws Exception {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String url = "jdbc:odbc:OJT_dsn";

String user = "sa";

String pass = "";

Connection con = DriverManager.getConnection( url, user, pass );

Statement state = con.createStatement();

ResultSet rs = state.executeQuery("");

ResultSetMetaData rsmetadata = rs.getMetaData();

int columns = rsmetadata.getColumnCount();

DefaultTableModel dtm = new DefaultTableModel();

Vector column_name = new Vector();

Vector data_rows;

//note the <= check iso the < check (as the count starts at index 1)

for (int i=1; i<=columns;i++){

column_name.addElement(rsmetadata.getColumnName(i));

}

dtm.setColumnIdentifiers(column_name);

while(rs.next()){

data_rows = new Vector();

//note the <= check iso the < check (as the count starts at index 1)

for (int j=1; j<=columns; j++){

data_rows.addElement(rs.getString(j));

}

dtm.addRow(data_rows);

}

return dtm;

}

`@Override <<<<<<<<<<<<<<<<<<<<< I have a problem here it says : done() in javaapplication25.SearchPatient.QueryWorkerThread cannot override done() in javax.swing.SwingWorker overriden method does not throw java.lang.Exception , what does it mean sir?`

protected void done() throws Exception{

//this method runs on the EDT, so it is safe to update our table here

try {

tableToUpdate.setModel( get() );

} catch ( InterruptedException e ) {

throw new RuntimeException( e );

} catch ( ExecutionException e ) {

throw new RuntimeException( e );

}

}

解决方案

try this

DefaultTableModel dtm=(DefaultTableModel)table.getModel();

for (int i = dtm.getRowCount() - 1; i > -1; i--) {

dtm.removeRow(i);

}

Connection con = DriverManager.getConnection(url, user, pass);

Statement state = con.createStatement();

ResultSet rs = state.executeQuery("Your SQL Query");

while(rs.next())

{

String str1=rs.getString(1);

String str2=rs.getString(2);

String str3=rs.getString(3);

String str4=rs.getString(4);

String str5=rs.getString(5);

:

:

:

dtm.addRow(new Object[]{str1,str2,str3,str4,str5});

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值