0

我是 Vaadin 的新手,一直在尝试使用 SqlContainer。我已经设法让 mysql 数据库连接正常工作。这是连接和容器代码:

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 服务器。

4

1 回答 1

0

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

于 2013-04-23T07:06:04.510 回答