我编了一个简单的页面程序,是通过在框中输入的号码来查询该号码用户的相关资料,并显示在jtable中
客户端代码如下:
private void noFind_ActionPerformed(ActionEvent evt)
{
out.println("nofind");
out.println(icqField.getText().trim());
try
{
String str = "";
int theirjicq,picinfo,sta;
do
{
str = in.readLine();
if(str.equals("over")) break;
else if(!str.equals("over"))
{
nickname.add(str);
theirjicq=Integer.parseInt(in.readLine());
icq.add(new Integer(theirjicq));
sex.add(in.readLine());
picinfo=Integer.parseInt(in.readLine());
headpicture.add(new Integer(picinfo));
ip.add(in.readLine());
email.add(in.readLine());
city.add(in.readLine());
infomation.add(in.readLine());
sta=Integer.parseInt(in.readLine());
status.add(new Integer(sta));
}
}while(!str.equals("over"));
vector.removeAllElements();
tm.fireTableStructureChanged();
for(int i = 0; i < nickname.size(); i++)
{
Vector rec_vector = new Vector();
Integer len = (Integer) headpicture.get(i);
ImageIcon f = new ImageIcon(pictures[len]);
rec_vector.addElement(nickname.get(i));
rec_vector.addElement(f);
rec_vector.addElement(city.get(i));
vector.addElement(rec_vector);
}
tm.fireTableStructureChanged();
}
catch(IOException ioe){System.out.println("false1");}
//catch(NullPointerException ne) {System.out.println("aaa");}
try
{
}
catch(Exception e)
{
//System.out.println("you have a false");
e.printStackTrace();
}
}
客户端代码如下:
private void noFind_ActionPerformed(ActionEvent evt)
{
out.println("nofind");
out.println(icqField.getText().trim());
try
{
String str = "";
int theirjicq,picinfo,sta;
do
{
str = in.readLine();
if(str.equals("over")) break;
else if(!str.equals("over"))
{
nickname.add(str);
theirjicq=Integer.parseInt(in.readLine());
icq.add(new Integer(theirjicq));
sex.add(in.readLine());
picinfo=Integer.parseInt(in.readLine());
headpicture.add(new Integer(picinfo));
ip.add(in.readLine());
email.add(in.readLine());
city.add(in.readLine());
infomation.add(in.readLine());
sta=Integer.parseInt(in.readLine());
status.add(new Integer(sta));
}
}while(!str.equals("over"));
vector.removeAllElements();
tm.fireTableStructureChanged();
for(int i = 0; i < nickname.size(); i++)
{
Vector rec_vector = new Vector();
Integer len = (Integer) headpicture.get(i);
ImageIcon f = new ImageIcon(pictures[len]);
rec_vector.addElement(nickname.get(i));
rec_vector.addElement(f);
rec_vector.addElement(city.get(i));
vector.addElement(rec_vector);
}
tm.fireTableStructureChanged();
}
catch(IOException ioe){System.out.println("false1");}
//catch(NullPointerException ne) {System.out.println("aaa");}
try
{
}
catch(Exception e)
{
//System.out.println("you have a false");
e.printStackTrace();
}
}
else if(str.equals("nofind"))
{
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection c3=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; databaseName=TEST", "sa","111111");
//以下连接数据库,并且返回其他用户的呢称,性别,籍贯,个人资料等信息
String find="select nickname,icqno,sex,picture,ip,email,city,information,status from icq where icqno = ?";
String icqnumber = in.readLine();
int g=Integer.parseInt(icqnumber);
PreparedStatement prepare3 = c3.prepareCall(find);
prepare3.clearParameters();
prepare3.setInt(1,g);
ResultSet result = prepare3.executeQuery();
boolean y;
while(result.next())
{
out.println(result.getString("nickname"));
out.println(result.getInt("icqno"));
out.println(result.getString("sex"));
out.println(result.getInt("picture"));
out.println(result.getString("ip"));
out.println(result.getString("email"));
out.println(result.getString("city"));
out.println(result.getString("information"));
y = result.getBoolean("status"); //返回用户是否在线的布尔值。
if (y){out.println("1");}
else {out.println("0");}
}//while end
out.println("over");
c3.close();result.close();
}
catch (Exception e){e.printStackTrace();System.out.println("false!");}
//socket.close();
}
我输入1,显示一行结果,输入2,显示两行结果,1和2的结果都显示在JTable中了。但是同样的model,如果我不连接服务器,而只是调用本地的服务器时,就可以达到我想要的效果。
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; databaseName=TEST", "sa","111111");
statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
String a= icqField.getText().trim();
//String sql = "select * from studentbase where student_number =" + a;
String sql = "select * from icq where nickname = '" + a + "'";
ResultSet rs = statement.executeQuery(sql);
content.removeAllElements();
tm.fireTableStructureChanged();
while(rs.next())
{
Vector rec_vector = new Vector();
Integer len = (Integer) rs.getInt("picture");
ImageIcon f = new ImageIcon(pictures[len]);
rec_vector.addElement(rs.getString("nickname"));
rec_vector.addElement(f);
rec_vector.addElement(rs.getString("city"));
content.addElement(rec_vector);
}
tm.fireTableStructureChanged();
rs.close();