用户登录
用户注册

分享至

hibernate参数

  • 作者: 我的名字是十三个字不信你数
  • 来源: 51数据库
  • 2020-09-22

Hibernate在查询出一行数据之后,内部实现还是将数据读出到ResultSet里。

然后分析session.get(Class, Object)函数的Class参数,通过类反射可以知道该Class包含哪些对象并且newInstance一个该类的对象。

从ResultSet读出属性填充到该对象,用户只需要对这个对象进行简单的类型转换就可以使用了。

例子如下:

static final ActiveRecord setupObject (Object object, ResultSet resultSet) throws java.sql.SQLException, ObjectAnalysisException

    {

        Map<Field, Accesstor> fields = ActiveRecord.analizeObjectFields(object);

        try

        {

            for(Field field : fields.keySet())

            {

                Object value = resultSet.getObject(field.getName());

                if(value != null)

                    fields.get(field).getSetter().invoke(object, value);

            }

        }

        catch(SQLException err)

        {

            throw err;

        }

        catch(Exception err)

        {

            if(err instanceof IllegalAccessException || err instanceof IllegalArgumentException)

                throw new ObjectAnalysisException(err.toString(), err);

            else if(err instanceof InvocationTargetException)

                throw new ObjectAnalysisException(err.toString(), err);

        }

        object.setId(resultSet.getLong("id"));

        return object;

    }


软件
前端设计
程序设计
Java相关