当我搜索第一个字母或数字时如何使数据库结果出现? [英] How To Make The Database Results To Appear When I Search The First Letter Or Number?

查看:73
本文介绍了当我搜索第一个字母或数字时如何使数据库结果出现?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 JComboBox comboBox =  new  JComboBox(); 
comboBox.setModel( new DefaultComboBoxModel( new 字符串 [] { DateSave 类别 金额 内容}));
comboBox.setBounds( 250 476 107 26 );
add(comboBox);

textFieldSearch = new JTextField();
textFieldSearch.addKeyListener( new KeyAdapter(){
@ Override
public void keyPressed(KeyEvent arg0){
尝试 {
字符串 selection =( String )comboBox.getSelectedItem() ;
Class.forName( org.gjt.mm.mysql.Driver);
字符串 url = ;
url = jdbc:mysql:// localhost / project;
Connection con = DriverManager.getConnection(url, ITUser user);
字符串 query = 从保存中选择*其中 + selection + =?;

PreparedStatement pst =(PreparedStatement)con.prepareStatement(query);
pst.setString( 1 ,textFieldSearch.getText());

ResultSet rs = pst.executeQuery();

Savingtable.setModel(DbUtils.resultSetToTableModel(rs));
String search = textFieldSearch.getText();
if (search.length()== 0 ){ // 在搜索为空时恢复正常
setTableModelFromDB();
scrollPane.setViewportView(Savingtable);
scrollPane.setColumnHeaderView(Savingtable.getTableHeader());
}

while (rs.next())
{
}

pst.close();
} catch (Exception ex){
ex.printStackTrace();
}
}
});
textFieldSearch.setBounds( 716 474 146 26 );
add(textFieldSearch);
textFieldSearch.setColumns( 10 );



我可以从我的textField搜索我的数据库但是它必须以全文输入,然后会出现结果。例如,金额为700,我必须输入700,然后才能显示结果。当我搜索第一个字母或数字时如何使数据库结果出现:(

解决方案

参见 SQL LIKE运算符 [ ^ ]。

JComboBox comboBox = new JComboBox();
      comboBox.setModel(new DefaultComboBoxModel(new String[] {"DateSave", "Category", "Amount", "Content"}));
      comboBox.setBounds(250, 476, 107, 26);
      add(comboBox);
      
      textFieldSearch = new JTextField();
      textFieldSearch.addKeyListener(new KeyAdapter() {
      	@Override
      	public void keyPressed(KeyEvent arg0) {
      		try{
    			String selection = (String)comboBox.getSelectedItem();
    			Class.forName("org.gjt.mm.mysql.Driver");
    			String url ="";
    			url = "jdbc:mysql://localhost/project"; 
    			Connection con = DriverManager.getConnection(url, "ITUser", "user"); 
    			String query="Select * from saving where "+selection+" =?";
    			
    			PreparedStatement pst= (PreparedStatement) con.prepareStatement(query);
    			pst.setString(1,textFieldSearch.getText());
    			
    			ResultSet rs=pst.executeQuery();
    			
    			Savingtable.setModel(DbUtils.resultSetToTableModel(rs));
    			String search =	textFieldSearch.getText();
    			if(search.length() == 0){    //to make back normal when search is empty
    				setTableModelFromDB();
    				scrollPane.setViewportView(Savingtable);
    				scrollPane.setColumnHeaderView(Savingtable.getTableHeader());
    			}

    			while(rs.next())
    			{
    		        }

    			pst.close();
    	              }catch(Exception ex){
    		ex.printStackTrace();
    	}
      	}
      });
      textFieldSearch.setBounds(716, 474, 146, 26);
      add(textFieldSearch);
      textFieldSearch.setColumns(10);


I can search from my database from my textField but it must be typed in full text, the result will then appear.For example, the amount is 700,i must type 700 then the result can appear. How to make database result to appear when i search the first letter or number :(

解决方案

See SQL LIKE Operator[^].


这篇关于当我搜索第一个字母或数字时如何使数据库结果出现?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆