java界面里怎么将从数据库中按条件查询的结果显示在界面里。。急求 20

本人新手在做课程设计,现在想在java里界面输入一个条件,按照这个条件在数据库里查询,最后显示在界面中!!就像下面那个我做的似的。。现在我查了但是不显示结果希望大神可以给... 本人新手在做课程设计,现在想在java里界面输入一个条件,按照这个条件在数据库里查询,最后显示在界面中!!就像下面那个我做的似的。。现在我查了但是不显示结果 希望大神可以给个类似的模板或者指正下错误。不甚感激!

这是我写查找监视器的代码(整个的超过字数了只能截这部分了,感觉好像是这部分出了问题) 希望大神帮帮忙告诉我那 句代码错了 不胜感激!
public void actionPerformed(ActionEvent ae)
{
num=textField.getText().trim();
if (num.equals(""))
{
JOptionPane.showMessageDialog(this, "对不起,请输入医生工号.", "错误!",JOptionPane.ERROR_MESSAGE);
}
else
{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("加载驱动程序成功");
}
catch(Exception e)
{
System.out.println("无法加载驱动程序");
}
try{
String url="jdbc:sqlserver://localhost:1433;DatabaseName=Binglixitong;";
con=DriverManager.getConnection(url,"sa","123456");
sql=con.createStatement();
rs=sql.executeQuery("select * from 医生 where 医号='"+num+"'");
boolean boo=rs.next();
if(boo==false)
{
JOptionPane.showMessageDialog(this,"此医生不存在","提示",JOptionPane.WARNING_MESSAGE);
}
else
{
int lastNumber=rs.getRow();
a=new Object[lastNumber][5];
int k=0;
rs.beforeFirst();
while(rs.next())
{
a[k][0]=rs.getString(1);
a[k][1]=rs.getString(2);
a[k][2]=rs.getString(3);
a[k][3]=rs.getString(4);
a[k][4]=rs.getString(5);
k++;
}
}
rs.close();
sql.close();
}
catch(SQLException e)
{
System.out.println("SQL异常");
}
}
table=new JTable(a,name);
getContentPane().removeAll();
add(pSouth,BorderLayout.NORTH);
add(new JScrollPane(table),BorderLayout.CENTER);
validate();
}
展开
 我来答
匿名用户
2018-04-21
展开全部
首先创建可以可以操作数据库的模型用来实现crud
package model;
/*
* 负责对数据库操作的表模型
*/
import java.sql.*;
public class SqlModel {

static Connection con=null;
static PreparedStatement ps=null;
static ResultSet rs=null;
//ResultSet rs2=null;
public SqlModel(){
try {
//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//2、得到连接(指定连接到那个数据源),hostel:数据源名
con=DriverManager.getConnection("jdbc:odbc:hostel","","");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//负责增、删、改的方法
public boolean update(String sql,String []paras){
boolean b=true; //判断是否删除成功
try {
ps=con.prepareStatement(sql); //向数据库发送sql语句

//利用循环给sql语句中的问号赋值
for(int i=0;i<paras.length;i++){
ps.setString(i+1, paras[i]);
}
//得到结果
//int rs=ps.executeUpdate();
ps.executeUpdate();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return b;
}
//负责查询的方法
public ResultSet query(String sql, String []paras){
try {
ps=con.prepareStatement(sql); //向数据库发送sql语句

//利用循环给sql语句中的问号赋值
for(int i=0;i<paras.length;i++){
ps.setString(i+1, paras[i]);
}
//得到结果
rs=ps.executeQuery();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}

//关闭数据库连接的方法
public void close(){
try {
if(rs!=null){rs.close();}
if(ps!=null){ps.close();}
if(con!=null){con.close();}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

再创建一个表模型,
package model;
import java.sql.*;
import java.util.*;

import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
public class Table extends AbstractTableModel{
SqlModel sm;

Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
Vector Hang,Lie;

//查询的方法
public void ShuJuKuLianJie(String sql,String []paras){
try {

Hang=new Vector();
Lie=new Vector();

SqlModel sm=new SqlModel();
rs=sm.query(sql, paras);

//利用ResultSetMetaData可以得到返回列的列名
ResultSetMetaData rsm=rs.getMetaData();
for(int i=0;i<rsm.getColumnCount();i++){
this.Hang.add(rsm.getColumnName(i+1));
}

while(rs.next()){
Vector<String> lie=new Vector<String>();

for(int i=0;i<rsm.getColumnCount();i++){
lie.add(rs.getString(i+1));
}
Lie.add(lie);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(rs!=null){rs.close();};
if(ps!=null){ps.close();};
if(con!=null){con.close();};
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//增删改方法
public boolean ZhengShanGai(String sql,String paras[]){
boolean b=true; //用来返回操作是否成功
SqlModel sm=new SqlModel();
try {
b=sm.update(sql, paras);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
sm.close();
}
return b;
}

@Override
public int getRowCount() {
// TODO Auto-generated method stub
//得到共有多少列
return this.Lie.size();
}

@Override
public int getColumnCount() {
// TODO Auto-generated method stub
//得到共有多少行
return this.Hang.size();
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
//得到某行某列的数据
return ((Vector) this.Lie.get(rowIndex)).get(columnIndex);
}
public String getColumnName(int column) {
// TODO Auto-generated method stub
return (String)this.Hang.get(column);
}
}

查询过后别忘记刷新表模型
.setModel();方法
北斗圣拳
2014-06-15 · TA获得超过122个赞
知道小有建树答主
回答量:296
采纳率:100%
帮助的人:99.5万
展开全部
rs=sql.executeQuery("select * from 医生 where 医号='"+num+"'");
你的表名和字段名比较给力啊。。。建议改成英文的试试
更多追问追答
追问
我改了试下  还是不行  好像不是这个问题   我登陆界面里查询的表也是中文没有问题

“加载驱动程序成功
SQL异常”

这是我运行的结果。大神再帮忙看看 之前没接触过java折磨我一天了T T
追答
后台错误贴出来看看。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式