hzwj59
发贴: 1
积分: 0
|
于 2008-11-23 13:39
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;//文本组件 用于单行输入的文本域 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.setLayout(new FlowLayout()); 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"); }}} 没有实现,性别,年龄,专业这些标签 帮忙再看看吧 (jp_1面板包括姓名,性别,年龄专业对应的书签和文本框,jp_1采用FloweLayout布局;jp_2包含jp_1面板,递交,查询条件标签,采用BorderLayout布局;最后jp_3面板包含jp_2面板和结果显示文本框,采用BorderLayout布局 )
|