JAVA在Swing界面调用Access数据库的的表格会出现CPU的使用率高达100%,系统会很卡,求个大虾指点下
无任何报错,只是占用的CPU资源很多,打开我做的界面再开个网页的话会很卡,关闭界面就不卡了下面是其中的一个刷新数据功能的数据库调用过程,其他的调用也跟这个差不多[code...
无任何报错,只是占用的CPU资源很多,打开我做的界面再开个网页的话会很卡,关闭界面就不卡了下面是其中的一个刷新数据功能的数据库调用过程,其他的调用也跟这个差不多[code=Java][/code]public void findAction() throws SQLException { //查找与刷新所需时间段的数据
refresh();
Connection conn = null; //连接ACCESS数据库
try {
String strurl="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/myfile/qfc.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(strurl);
if (conn == null)
return;
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
//2006年05月19日13时19分 //2006年10月19日13时19分
select= stmt.executeQuery("select * from 整点数据 where 时间 >='"+startTime+"'" +
"and 时间<='"+endTime+"'");
try { //确定起始时间和结束时间的取值范围;
select = stmt.executeQuery("select * from 整点数据 where 时间 >='"+startTime+"' " +
"and 时间<='"+endTime+"'and 设备号='"+sortedList.getSelectedValue().toString()+"'");
rsmd = select.getMetaData();
} catch (SQLException e1) {
System.out.print("数据库刷新整点数据异常");
}
Vector columnHeads = new Vector(); //Table表1取数据库列表
Vector rows = new Vector();
try {
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
columnHeads.addElement(rsmd.getColumnName(i));
while ( select.next() )
{
Vector currentRow = new Vector();
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
{
currentRow.addElement(select.getString( i ) );
}
rows.addElement(currentRow);
}
} catch (SQLException e1) {
System.out.print("数据库连接整点数据异常");
}
defaultTableModel.setDataVector(rows,columnHeads);
defectsTable.setModel(defaultTableModel);
{
TableColumnModel columns = defectsTable.getColumnModel();
for (int m =0;m<20;m++){
TableColumn column = columns.getColumn(m);
column.setPreferredWidth(150);
}
}
JOptionPane.showMessageDialog(this,"刷新完成");
stmt.close();
} catch (Exception ex) {
System.out.print("数据库连接异常");
} finally {
if (conn != null)
try {
conn.close();
} catch (SQLException ec) {
System.out.print("数据库关闭异常");
}
}
} 展开
refresh();
Connection conn = null; //连接ACCESS数据库
try {
String strurl="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/myfile/qfc.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(strurl);
if (conn == null)
return;
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
//2006年05月19日13时19分 //2006年10月19日13时19分
select= stmt.executeQuery("select * from 整点数据 where 时间 >='"+startTime+"'" +
"and 时间<='"+endTime+"'");
try { //确定起始时间和结束时间的取值范围;
select = stmt.executeQuery("select * from 整点数据 where 时间 >='"+startTime+"' " +
"and 时间<='"+endTime+"'and 设备号='"+sortedList.getSelectedValue().toString()+"'");
rsmd = select.getMetaData();
} catch (SQLException e1) {
System.out.print("数据库刷新整点数据异常");
}
Vector columnHeads = new Vector(); //Table表1取数据库列表
Vector rows = new Vector();
try {
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
columnHeads.addElement(rsmd.getColumnName(i));
while ( select.next() )
{
Vector currentRow = new Vector();
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
{
currentRow.addElement(select.getString( i ) );
}
rows.addElement(currentRow);
}
} catch (SQLException e1) {
System.out.print("数据库连接整点数据异常");
}
defaultTableModel.setDataVector(rows,columnHeads);
defectsTable.setModel(defaultTableModel);
{
TableColumnModel columns = defectsTable.getColumnModel();
for (int m =0;m<20;m++){
TableColumn column = columns.getColumn(m);
column.setPreferredWidth(150);
}
}
JOptionPane.showMessageDialog(this,"刷新完成");
stmt.close();
} catch (Exception ex) {
System.out.print("数据库连接异常");
} finally {
if (conn != null)
try {
conn.close();
} catch (SQLException ec) {
System.out.print("数据库关闭异常");
}
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询