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