import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class QueryDB {
public static void main(String[] args){
JFrame myframe=new QueryFrame();
myframe.setVisible(true);
}}
class QueryFrame extends JFrame implements ActionListener{
private Connection con=null;
private Statement stmt=null;
private ResultSet rs=null;
private JLabel conditionLabel=new JLabel("请填写下列查询条件",SwingConstants.CENTER);
private JLabel namelabel=new JLabel("姓名",SwingConstants.RIGHT);
private JTextField name=new JTextField(8);//文本组件 用于单行输入的文本域
private JLabel sexlabel=new JLabel("性别",SwingConstants.RIGHT);
private JTextField sex=new JTextField(3);//文本组件 用于单行输入的文本域
private JLabel agelabel=new JLabel("年龄",SwingConstants.RIGHT);
private JTextField age=new JTextField(3);//文本组件 用于单行输入的文本域
private JLabel majorlabel=new JLabel("专业",SwingConstants.RIGHT);
private JTextField major=new JTextField(10);//文本组件 用于单行输入的文本域
private JButton commit=new JButton("递交");//按钮 创建一个带文字的按钮
private JTextArea resultarea=new JTextArea(10,28);//用于多行输入的文本区
private String command=null;
public QueryFrame(){
setTitle("数据库查询");
setSize(500,260);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
getContentPane().setLayout(new GridBagLayout());
JPanel jp_1=new JPanel();
jp_1.add(namelabel);jp_1.add(name);
jp_1.add(sexlabel);jp_1.add(sex);
jp_1.add(agelabel);jp_1.add(age);
jp_1.add(majorlabel);jp_1.add(major);
JPanel jp_2=new JPanel();
jp_2.setLayout(new BorderLayout());
jp_2.add("North",conditionLabel);
jp_2.add("Center",jp_1);
jp_2.add("East",commit);
JPanel jp_3=new JPanel();
jp_3.setLayout(new BorderLayout());
jp_3.add("North",jp_2);
jp_3.add("Center",new JScrollPane(resultarea));
add(jp_3);
resultarea.setEditable(false);
resultarea.setLineWrap(true);
commit.addActionListener(this);
try{
DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://BOJONEXP-6C134A:1433;", "sa","5166975");
stmt=con.createStatement();
}catch(Exception ex)
{
resultarea.append(ex.getMessage()+"\n");
return;
} }
public void actionPerformed(ActionEvent evt){
try {String namevalue=name.getText().trim();
String sexvalue=sex.getText().trim();
String agevalue=major.getText().trim();
String sname,ssex,sage,smajor;
sname="LIKE'%"+namevalue+"%'";
ssex="LIKE'"+sexvalue+"%'";
if(agevalue.equals(""))
sage="between 15 and 35";
else
sage="="+agevalue;
smajor="LIKE'%"+major+"%'";
command="select * from student where name"+sname+"and sex"+ssex+"and age"+sage+"and major"+smajor;
rs=stmt.executeQuery(command);
resultarea.setText("");
if(!rs.next()){
resultarea.setText("找不到符合的此条件的记录");
}else {
do{
String rename=rs.getString("name");
String resex=rs.getString("sex");
String reage=rs.getString("age");
String remajor=rs.getString("major");
resultarea.append(rename);
resultarea.append(resex+" ");
resultarea.append(reage+" ");
resultarea.append(remajor+"\n");
}while(rs.next());
}catch(Exception ex){
resultarea.append(ex.getMessage()+"\n");
}}}