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();
} 展开
这是我写查找监视器的代码(整个的超过字数了只能截这部分了,感觉好像是这部分出了问题) 希望大神帮帮忙告诉我那 句代码错了 不胜感激!
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();
} 展开
2个回答
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();方法
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();方法
展开全部
rs=sql.executeQuery("select * from 医生 where 医号='带脊"+num+"'");
你的蠢指渗表名和逗孝字段名比较给力啊。。。建议改成英文的试试
你的蠢指渗表名和逗孝字段名比较给力啊。。。建议改成英文的试试
更多追问追答
追问
我改了试下 还是不行 好像不是这个问题 我登陆界面里查询的表也是中文没有问题
“加载驱动程序成功
SQL异常”
这是我运行的结果。大神再帮忙看看 之前没接触过java折磨我一天了T T
追答
后台错误贴出来看看。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询