JDBC效率问题,才2,3张表连接查询就慢得受不了?高分求解...... java.sql中有DataExpress、dbswing吗?是不是你的JDBC驱动不好,效率不高的原因。java的UI方面速度是很慢的,我们从来都不用。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java.sql包当然没有DataExpress、dbswing,DataExpress、dbswing是在broland的包里。数据库方面的优化我已经做得基本够了,况且只用2,3条数据,数据库优化其实并不起明显作用。不过还是有个好消息,我做了大量的试验,dbswing确实很慢,相同的查询用QueryDataSet,JdbTable和用ResultSet查出来手工填进JTable数度相差很大,建议大家用后者,但比起前者就是麻烦一点,决定写个通用的类来搞定。 下面就是我写的这个类查出数据然后填进table中,欢迎指正import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;public class FillTable{ private JTable table; private Vector vCdata; private String ssql; private int irowcount=0; private DMCredit dMCredit1; public FillTable(JTable table,Vector vCdata,String ssql) { try { this.table=table; this.vCdata=vCdata; this.ssql=ssql; jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { dMCredit1 = credit.DMCredit.getDataModule(); } public int setData() { MyTableModle dtm = new MyTableModle(); //定义表格的数据模型 table.setModel(dtm); table.getSelectionModel().setSelectionMode(0); for(int i=0;i<vCdata.size();i++) { dtm.addColumn((String)vCdata.elementAt(i)); } Statement stm = dMCredit1.getDBCredit().createStatement(); try { ResultSet rs = stm.executeQuery(ssql); while (rs.next()) { Vector vRdata=new Vector(); for (int j=0;j<vCdata.size();j++) { vRdata.addElement(rs.getString(j + 1)); } dtm.addRow(vRdata); irowcount++; } rs.close(); table.repaint(); return irowcount; } catch (Exception ex) { return -1; } }}import javax.swing.table.*;import java.util.*;class MyTableModle extends DefaultTableModel{ public MyTableModle() { super(); } public boolean isCellEditable(int row, int column) {//设置表列不可编辑 return false; }} 大虾们:java怎样通过twain标准得到摄像头中的静态图像,不要界面。 讨论关于封装性之public&private jdialog传递数据的问题! 奇怪的聊天程序 普通类的对象怎么判断它是不是空? String小问题 JExcelApi生成Excel 文件的问题 关于文件下载的问题,大家帮个忙!!!! jbuilder7在使用威盛CPU的机器上无法安装的问题 【JBuilder6【不管什么版本,最好有企业版】有地方下载吗?或有D版吗?】 !!!!内存溢出问题,解决再加100!!!!!!!!!!! 一个简单问题,关于编码
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;public class FillTable
{
private JTable table;
private Vector vCdata;
private String ssql;
private int irowcount=0;
private DMCredit dMCredit1; public FillTable(JTable table,Vector vCdata,String ssql)
{
try
{
this.table=table;
this.vCdata=vCdata;
this.ssql=ssql;
jbInit(); }
catch(Exception e)
{
e.printStackTrace();
}
}
private void jbInit() throws Exception
{
dMCredit1 = credit.DMCredit.getDataModule();
} public int setData()
{
MyTableModle dtm = new MyTableModle(); //定义表格的数据模型
table.setModel(dtm);
table.getSelectionModel().setSelectionMode(0);
for(int i=0;i<vCdata.size();i++)
{
dtm.addColumn((String)vCdata.elementAt(i));
}
Statement stm = dMCredit1.getDBCredit().createStatement();
try
{
ResultSet rs = stm.executeQuery(ssql);
while (rs.next())
{
Vector vRdata=new Vector();
for (int j=0;j<vCdata.size();j++)
{
vRdata.addElement(rs.getString(j + 1));
}
dtm.addRow(vRdata);
irowcount++;
}
rs.close();
table.repaint();
return irowcount;
}
catch (Exception ex)
{
return -1;
}
}
}import javax.swing.table.*;
import java.util.*;
class MyTableModle extends DefaultTableModel
{
public MyTableModle()
{
super();
}
public boolean isCellEditable(int row, int column)
{//设置表列不可编辑
return false;
}
}