JDBC连接池使用反射来创建实体类

问题描述:

        在使用JDBC连接池去连接数据库查询Mysql表中的数据时,没有为实体类提供无参构造器,出现如下报错:Cannot create com.atcs.entity.Manager...

解决方法:

        为实体类提供一个无参构造器即可。

原因:

        select * from `manager` where username= ? and password = ?
        查了很多资料发现在执行Sql语句时,JDBC会将该语句的结果作为一个实体类返回。JDBC连接池使用反射来创建实体类,以便将查询结果映射到实体类中。

        具体来说,连接池会使用 Class.forName() 方法加载实体类,并调用该类的无参构造函数来创建实例。然后,连接池会使用反射来获取实体类中对应字段的 Setter 方法,然后通过调用 Setter 方法将查询结果设置到实体类的实例中。故实体类也不能缺少 Setter 方法。
        

你可能感兴趣的:(java,mysql,开发语言)