JTable調(diào)用數(shù)據(jù)庫(kù)
Posted on 2007-06-12 00:57 停留的風(fēng) 閱讀(1598) 評(píng)論(0) 編輯 收藏 所屬分類: 快速前進(jìn)的Java
數(shù)據(jù)庫(kù)的操作:
public ArrayList SelIdMed(String Id){
Database DB=new Database();//Database中封裝了數(shù)據(jù)庫(kù)連接,打開(kāi)、執(zhí)行的方法
String sql="select * from medInfo where medId="+Integer.parseInt(Id);
ArrayList<Medicine> list=null; //Medicine是一個(gè)有幾種屬性的實(shí)體類
Medicine med=null;
try{
DB.OpenCon();
rs=DB.executeQuery(sql);
list=new ArrayList<Medicine>();
while(rs.next()){
med=new Medicine();
med.setMedicineId(rs.getString("medId"));
med.setMedicineName(rs.getString("medName"));
med.setUnit(rs.getString("unit"));
med.setQuantity(rs.getDouble("quantity"));
med.setSideEffect(rs.getString("sideEffect"));
list.add(med);
}
}catch(Exception e){
e.getStackTrace();
}finally{
try{
DB.closeStmt();
DB.closeCon();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
return list;
}
為查詢button添加事件,讀取數(shù)據(jù)
public void actionPerformed(ActionEvent e) {
TableModel tm=getJTable1().getModel();
DefaultTableModel dtm=(DefaultTableModel)tm;
Object obj=e.getSource();
if(obj==jButton)
{
pId = (String)jComboBox1.getSelectedItem();//一個(gè)下拉列表框
MedBean md=new MedBean(); //MedBean類中定義了上述的方法
ArrayList<Medicine>list=md.SelIdMed(pId);
}
int rowcount=dtm.getRowCount();
for(int i=rowcount-1;i>=0;i--){
dtm.removeRow(i);
}
for(Medicine med:list){
Object[] object={med.getMedicineId(),med.getMedicineName(),med.getQuantity(),med.getSideEffect(),med.getUnit()};
dtm.addRow(object);
}
}
else
{
this.dispose();
}
}
第二種讀取數(shù)據(jù)的方法:
public void actionPerformed(ActionEvent e) {
TableModel tm=getJTable1().getModel();
DefaultTableModel dtm=(DefaultTableModel)tm;
Object obj=e.getSource();
if(obj==jButton)
{
pId = (String)jComboBox1.getSelectedItem();
MedBean md=new MedBean();
Iterator iterator=md.SelIdMed(pId).iterator();
while(iterator.hasNext()){
Medicine med=(Medicine) iterator.next();
Object[] object={med.getMedicineId(),med.getMedicineName(),med.getQuantity(),med.getSideEffect(),med.getUnit()};
dtm.addRow(object);
}
int rowcount=dtm.getRowCount();
for(int i=rowcount-1;i>=0;i--){
dtm.removeRow(i);
}
}
}
else
{
this.dispose();
}
}
對(duì)于表的屬性要做修改
Object[][] tabledata={};
private String[] colName={"編號(hào)","醫(yī)生姓名","醫(yī)生電話","開(kāi)始時(shí)間","終止時(shí)間","用過(guò)次數(shù)","可用次數(shù)"};
if (jTable == null) {
DefaultTableModel model=new DefaultTableModel(tabledata,column){
public boolean isCellEditable(int row, int column)
{
return false;
};
};
jTable = new JTable(model);
jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);