访问SQL结果集时出现Java JsonMappingException

时间:2018-03-20 07:31:53

标签: java json jackson

PreparedStatement getUser = null;
Connection con = null;
try {
    dataSource = new BasicDataSource();
    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    dataSource.setUrl("jdbc:mysql://localhost:3306/mfp");
    ...

    con = dataSource.getConnection();
    getUser = con.prepareStatement("SELECT * FROM users WHERE username = ?");

    getUser.setString(1, username);

    ResultSet data = getUser.executeQuery();

    if (data.first()) {
        if (data.getString("username").equals(username) && data.getString("password").equals(password)) {

在最后一行中,我得到以下异常:

com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class java.lang.Object and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: com.sample.UserLogin["dataSource"]->org.apache.commons.dbcp.BasicDataSource["connectionPool"]->org.apache.commons.pool.impl.GenericObjectPool["_pool"]->java.util.LinkedList[0]->org.apache.commons.pool.impl.ObjectTimestampPair["value"]->org.apache.commons.dbcp.PoolableConnection["_conn"]->com.mysql.jdbc.JDBC4Connection["charsetConverterMap"]->java.util.HashMap["UTF-8"])
    at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:59)

当我调试该行时,watch部分会显示true两个比较:

data.getString("username").equals(username) - > true`` data.getString("密码&#34)。等于(密码)--> TRUE`

0 个答案:

没有答案