实现功能: 按不用类型查询:需要实现按姓名,学号,籍贯分别查询,并显示查询结果源代码太长  地址如下: http://blog.csdn.net/dengxina/archive/2010/10/14/5941810.aspx请大家帮忙修改 model1模式程序   实现上面功能

解决方案 »

  1.   

    都有了一个查询条件了,你多写同几个不就行了.
    在查询的拼接一下SQL语句:
    String sql = "select * from student where 1=1 ";
    if(!"".equals(学号))
    {
        sql = sql +" and 学号 like '%"+学号+"%'";
    }if(!"".equals(姓名))
    {
        sql = sql +" and 姓名 like '%"+姓名+"%'";
    }
    if(!"".equals(姓名))
    {
        sql = sql +" and 姓名 like '%"+姓名+"%'";
    }其他的以此类推
      

  2.   

    哦  我试试    不过   我新手  不太行啊    可不可以请你帮我改下   发给我   [email protected]相当感谢  
      

  3.   


    //------------------------------------------------------   
    //model2模式开发:   
    //StuMange文件源代码:   
      
      
    import java.awt.*;   
    import javax.swing.*;   
    import javax.swing.table.*;   
    import java.awt.event.*;   
    import java.util.Vector;import javax.swing.event.*;   
      
    public class StuMange extends JFrame implements ActionListener {   
        JLabel userName;  //学生名   
        JTextField textField,numField,jiguanField ;  //用户输入学生名字的文本框   
        JButton select, insert, update, delete; //分别代表查询,添加修改,删除的按钮   
        JTable table;  //用于显示数据的表   
           
        Panel panel1, panel2;   
        JScrollPane jscrollPane;   
           
        StuModel stuModel = null; //st表的模型    
           
        public static void main(String[] args) {   
            StuMange stuMange = new StuMange();   
        }   
           
        //构造方法   
        public StuMange()   
        {   
            //窗体上部的组件   
            userName = new JLabel("学生名:");   
            textField = new JTextField(10);   
            numField = new JTextField(10);   
            jiguanField = new JTextField(10);   
            select = new JButton("查询");   
            panel1 = new Panel();   
            //将组件添加到panel1面板中   
            panel1.add(new JLabel("学号:"));   
            panel1.add(numField);   
          
            panel1.add(userName);   
            panel1.add(textField);   
            panel1.add(new JLabel("籍贯:"));   
            panel1.add(jiguanField);   
            panel1.add(select);   
               
            //窗体的中部组件   
            stuModel = new StuModel();   
            stuModel.queryDate("select * from st");   
            table = new JTable(stuModel);   
            jscrollPane = new JScrollPane(table);   
               
            //船体的下部组件   
            insert = new JButton("添加");   
            update = new JButton("修改");   
            delete = new JButton("删除");   
            panel2 = new Panel();   
            //将组件添加到panel2面板中   
            panel2.add(insert);   
            panel2.add(update);   
            panel2.add(delete);   
               
            //设置事件监听   
            select.addActionListener(this);   
            insert.addActionListener(this);   
            update.addActionListener(this);   
            delete.addActionListener(this);   
               
            //将各个组件添加到窗体中   
            this.add(panel1, BorderLayout.NORTH);   
            this.add(jscrollPane, BorderLayout.CENTER);   
            this.add(panel2, BorderLayout.SOUTH);   
               
            //设置窗体属性   
            this.setSize(600, 300);   
            this.setLocation(200, 200);   
            this.setTitle("mini学生信息管理系统");   
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
            //设置窗体为可见   
            this.setVisible(true);   
               
        }   
        //响应用户的按键操作   
        public void actionPerformed(ActionEvent e)   
        {   
            //用户点击了查询按钮   
            if(e.getSource() == select)   
            {   
                String name = textField.getText().trim();
                String num = numField.getText().trim();
                String jiguan = jiguanField.getText().trim();
                String sql = "select * from st where 1=1 ";
                Vector<String> v = new  Vector<String>();            if(!"".equals(name))
                {
                 sql = sql + " and stNname=?";
                 v.add(name);
                }
                if(!"".equals(num))
                {
                 sql = sql + " and stId=?";
                 v.add(num);
                }
                if(!"".equals(jiguan))
                {
                 sql = sql + " and stBorn=?";
                 v.add(jiguan);
                }
                String str[] = new String[v.size()];
                for(int i=0;i<str.length;i++)
                {
                 str[i] = v.get(i);
                }
                stuModel = new StuModel();   
                stuModel.queryDate(sql, str);   
                   
                //刷新窗口   
                table.setModel(stuModel);   
            }   
            //用户点击了添加按钮   
            else if(e.getSource() == insert)   
            {   
                AddStu  addStu = new AddStu (this, "添加学生", true);   
                   
                //刷新窗口   
                stuModel = new StuModel();   
                stuModel.queryDate("select * from st");   
                table.setModel(stuModel);   
            }   
            //用户点击了修改的按钮   
            else if(e.getSource() == update)   
            {   
                int row = this.table.getSelectedRow();//获得用户选中的行   
                if(-1  == row)   
                {   
                    JOptionPane.showMessageDialog(this, "请选择行");   
                }   
                else  
                {   
                    UpdateStu updateStu = new UpdateStu(this, "修改学生", true, stuModel, row);   
                       
                    //刷新窗口   
                    StuModel stModel = new StuModel();   
                    stModel.queryDate("select * from st");   
                    table.setModel(stModel);   
                }      
            }   
            //用户点击了删除按钮   
            else if(e.getSource() == delete)   
            {   
                int row = this.table.getSelectedRow(); //获得用户选中的行   
                String id = (String)stuModel.getValueAt(row, 0);   
                String sql = "delete from st where stId=?";   
                String[]paras = {id};   
                stuModel.updateDatebase(sql, paras);   
                   
                //刷新窗口   
                StuModel stuModel = new StuModel();   
                stuModel.queryDate("select * from st");   
                table.setModel(stuModel);   
            }   
               
        }   
      
    }   
      
    //--------------------------------------------------------   
    //AddStu文件源代码:   
      
      
      

  4.   


    //--------------------------------------------------------   
    //StuModel文件源代码:   
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Vector;import javax.swing.table.AbstractTableModel;
      
    public class StuModel extends AbstractTableModel {   
        Vector<Vector> rowDate = null;  //记录表的记录   
        Vector<String> columnNames = null; //记录表的字段名   
        SqlHelper sqlHelper = null;   
        ResultSet rs = null;   
           
        //用户对数据库进行查询的操作   
        public void queryDate(String sql)   
        {   
            columnNames = new Vector<String>();   
            columnNames.add("学号");   
            columnNames.add("名字");   
            columnNames.add("性别");   
            columnNames.add("年龄");   
            columnNames.add("籍贯");   
            columnNames.add("系别");   
               
            rowDate = new Vector<Vector>();   
            sqlHelper = new SqlHelper();   
            rs = sqlHelper.queryDatabase(sql, new String[]{});   
            try {   
                while(rs.next())   
                {   
                    Vector<String> row = new Vector<String>();   
                    row.add(rs.getString(1));   
                    row.add(rs.getString(2));   
                    row.add(rs.getString(3));   
                    row.add(rs.getString(4));   
                    row.add(rs.getString(5));   
                    row.add(rs.getString(6));   
                       
                    rowDate.add(row);  //将row添加到rowDate中。实现了读取数据库的记录   
                }   
            } catch (SQLException e) {   
                // TODO Auto-generated catch block   
                e.printStackTrace();   
            }   
            finally  
            {   
                //关闭资源   
                if(null != rs)   
                {   
                    try {   
                        rs.close();   
                    } catch (SQLException e) {   
                        // TODO Auto-generated catch block   
                        e.printStackTrace();   
                    }   
                }   
                sqlHelper.close();   
            }   
        } 
        public void queryDate(String sql, String paras)   
        {   
            columnNames = new Vector<String>();   
            columnNames.add("学号");   
            columnNames.add("名字");   
            columnNames.add("性别");   
            columnNames.add("年龄");   
            columnNames.add("籍贯");   
            columnNames.add("系别");   
               
            rowDate = new Vector<Vector>();   
            sqlHelper = new SqlHelper();   
            rs = sqlHelper.queryDatabase(sql, paras);   
            try {   
                while(rs.next())   
                {   
                    Vector<String> row = new Vector<String>();   
                    row.add(rs.getString(1));   
                    row.add(rs.getString(2));   
                    row.add(rs.getString(3));   
                    row.add(rs.getString(4));   
                    row.add(rs.getString(5));   
                    row.add(rs.getString(6));   
                       
                    rowDate.add(row);  //将row添加到rowDate中。实现了读取数据库的记录   
                }   
            } catch (SQLException e) {   
                // TODO Auto-generated catch block   
                e.printStackTrace();   
            }   
            finally  
            {   
                //关闭资源   
                if(null != rs)   
                {   
                    try {   
                        rs.close();   
                    } catch (SQLException e) {   
                        // TODO Auto-generated catch block   
                        e.printStackTrace();   
                    }   
                }   
                sqlHelper.close();   
            }   
        } 
        //用户对数据库进行查询的操作   
        public void queryDate(String sql, String paras[])   
        {   
            columnNames = new Vector<String>();   
            columnNames.add("学号");   
            columnNames.add("名字");   
            columnNames.add("性别");   
            columnNames.add("年龄");   
            columnNames.add("籍贯");   
            columnNames.add("系别");   
               
            rowDate = new Vector<Vector>();   
            sqlHelper = new SqlHelper();   
            rs = sqlHelper.queryDatabase(sql, paras);   
            try {   
                while(rs.next())   
                {   
                    Vector<String> row = new Vector<String>();   
                    row.add(rs.getString(1));   
                    row.add(rs.getString(2));   
                    row.add(rs.getString(3));   
                    row.add(rs.getString(4));   
                    row.add(rs.getString(5));   
                    row.add(rs.getString(6));   
                       
                    rowDate.add(row);  //将row添加到rowDate中。实现了读取数据库的记录   
                }   
            } catch (SQLException e) {   
                // TODO Auto-generated catch block   
                e.printStackTrace();   
            }   
            finally  
            {   
                //关闭资源   
                if(null != rs)   
                {   
                    try {   
                        rs.close();   
                    } catch (SQLException e) {   
                        // TODO Auto-generated catch block   
                        e.printStackTrace();   
                    }   
                }   
                sqlHelper.close();   
            }   
        }   
        //用户对数据库进行增删查的操作   
        public boolean updateDatebase(String sql, String[] paras)   
        {   
            SqlHelper sqlHelper = new SqlHelper();   
            return sqlHelper.updateDatabase(sql, paras);   
        }   
        //返回表的列数   
        public int getColumnCount() {   
            // TODO Auto-generated method stub   
            return this.columnNames.size();   
        }   
      
        //返回表的行数   
        public int getRowCount() {   
            // TODO Auto-generated method stub   
            return this.rowDate.size();   
        }   
      
        //返回某行某列   
        public Object getValueAt(int rowIndex, int columnIndex) {   
            // TODO Auto-generated method stub   
            return ((Vector)this.rowDate.get(rowIndex)).get(columnIndex);   
        }   
           
        //设置表的字段名   
        public String getColumnName(int column)   
        {   
            return (String)this.columnNames.get(column);   
        }   
      
    }   
      
      

  5.   


    //--------------------------------------------------------   
    //SqlHelper 文件源代码:   
      
    import java.sql.*;   
      
    //后台数据库的类   
    public final class SqlHelper {   
        //数据库   
        Connection con = null;      
        PreparedStatement ps = null;   
        ResultSet rs = null;   
        private final static String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";   //jdbc驱动   
        private final static String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=test"; //数据源   
        private final static String user = "dd"; //数据库用户的密码   
        private final static String password = "123";  //数据库用户sa的密码   
        //用户对数据库进行数据查询   
        public ResultSet queryDatabase(String sql, String paras)   
        {   
            try  
            {   
                //加载jdbc驱动   
                Class.forName(driver);   
                //连接数据源   
                con = DriverManager.getConnection(url, user, password);   
                //执行sql   
                ps = con.prepareStatement(sql);   
                if(null != paras && paras.length()>0)   
                {   
                    ps.setString(1, paras);   
                }   
                rs = ps.executeQuery();   
                   
            }   
            catch(ClassNotFoundException e)   
            {   
                e.printStackTrace();   
            }   
            catch(SQLException e)   
            {   
                e.printStackTrace();   
            }   
            return rs;   
        } 
        //用户对数据库进行数据查询   
        public ResultSet queryDatabase(String sql, String paras[])   
        {   
            try  
            {   
                //加载jdbc驱动   
                Class.forName(driver);   
                //连接数据源   
                con = DriverManager.getConnection(url, user, password);   
                //执行sql   
                ps = con.prepareStatement(sql);   
                if(null != paras)   
                {   
                 for(int i=0;i<paras.length;i++)
                    ps.setString(1, paras[i]);   
                }   
                rs = ps.executeQuery();   
                   
            }   
            catch(ClassNotFoundException e)   
            {   
                e.printStackTrace();   
            }   
            catch(SQLException e)   
            {   
                e.printStackTrace();   
            }   
            return rs;   
        } 
           
        //用户对数据库进行增删改的操作   
        public boolean updateDatabase(String sql, String[] paras)   
        {   
            boolean result = true;  //记录对数据库的操作是否成功   
               
            try  
            {   
                //加载jdbc驱动   
                Class.forName(driver);   
                //连接数据源   
                con = DriverManager.getConnection(url, user, password);   
                //执行sql   
                ps = con.prepareStatement(sql);   
                for(int i = 0; i < paras.length; i++)   
                {   
                    ps.setString(i+1, paras[i]);   
                }   
                ps.executeUpdate();   
            }   
            catch(ClassNotFoundException e)   
            {   
                result = false;   
                e.printStackTrace();   
            }   
            catch(SQLException e)   
            {   
                result = false;   
                e.printStackTrace();   
            }   
            finally  
            {   
                //关闭资源   
                 this.close();   
            }   
            return result;     
        }   
           
        public void close()   
        {   
            //关闭资源   
            try  
            {   
                if(null != ps)   
                {   
                    ps.close();   
                }   
                if(null != con)   
                {   
                    con.close();   
                }   
            }   
            catch(SQLException e)   
            {   
                e.printStackTrace();   
            }   
        }   

      

  6.   

    谢谢大家支持!!!特别感谢    AWUSOFT   帮助解决问题!!!!!!!!!!!!!非常感谢 !!!!!!!!!!!