2013-04-21 107 views
0

我是Vaadin的新手,一直在尝试使用SqlContainer。我设法让mysql数据库连接工作。这里是连接和容器代码:这样的容器上SqlContainer过滤器区分大小写Vaadin

import java.io.Serializable; 
import java.sql.SQLException; 

import com.vaadin.data.util.sqlcontainer.SQLContainer; 
import com.vaadin.data.util.sqlcontainer.connection.JDBCConnectionPool; 
import com.vaadin.data.util.sqlcontainer.connection.SimpleJDBCConnectionPool; 
import com.vaadin.data.util.sqlcontainer.query.TableQuery; 
import com.vaadin.data.util.sqlcontainer.query.generator.filter.QueryBuilder; 
import com.vaadin.data.util.sqlcontainer.query.generator.filter.StringDecorator; 

public class DatabaseHelper implements Serializable { 
    private JDBCConnectionPool connectionPool = null; 
    private SQLContainer credentialContainer= null; 

    public DatabaseHelper() { 
     initConnectionPool(); 
    } 

    private void initConnectionPool() { 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      connectionPool = new SimpleJDBCConnectionPool(
        "com.mysql.jdbc.Driver", 
        "jdbc:mysql://localhost:3306/vaadin", "root", "mysqlpass", 
        2, 10); 
      initContainers(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 


    private void initContainers() { 
     try { 
      /* TableQuery and SQLContainer for personaddress -table */ 
      QueryBuilder.setStringDecorator(new StringDecorator("`","`")); 
      TableQuery q1 = new TableQuery("credentials", connectionPool); 
      q1.setVersionColumn("version"); 
      credentialContainer= new SQLContainer(q1); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

    public SQLContainer getcredentialContainer(){ 
     return credentialContainer; 
    } 

} 

然后,我已经使用的过滤器:

credentialcontainer.removeAllContainerFilters(); 
credentialcontainer.addContainerFilter("username", username.getValue(), false, true); 

然而,问题是,我注意到,过滤器,甚至忽略大小写当我将它设置为ignoreCase参数为false时。

任何人都知道这是一个错误还是我做错了什么? 注意:我正在使用OS X并运行本地MYSQL服务器。

+0

现在已解决! 问题不在于Vaadin SqlContainer。我没有意识到由于MYSQL的默认排序,比较是不区分大小写的。 – Thinker 2013-04-21 02:58:58

回答

0

现已解决! Vaadin SqlContainer没有问题。我没有意识到由于MYSQL的默认排序,比较是不区分大小写的。