如何将ResultSet对象转换为一个特定的POJO类对象?
-
例如,我有一个Resultset,其中包含有关员工详细信息的详细信息,我在数据库中有一个表For Employee,我从中选择所有详细信息
-
我有一个类似于Employee Table的java POJO类,它是将转换结果集实现为Employee类对象的最佳方法
-
如果我有多个类,如Employee和多个表,那么实现的最佳方法是什么,如何编写可重用的代码。
我现在使用以下符号。
public Employee{ private int empId; public setEmpId(int empId){ this.empId = empId; } public int getEmpId(){ return this.empId; } } public class SetResultSetToEmployee{ public Employee getEmployee(){ Employee e = new Employee(); e.setEmpId(resultSet.getInt("EmpId")); return e; } }
Mybatis或像Hibernate这样的ORM可能是您最好的解决方案。
但是,如果你真的需要使用jdbc的ResultSet,并想将ResultSet转换为java Beans,你可以检查:
- 来自apache的BeanUtils的 ResultSetDynaClass。
- 或者,像这样自己写一些代码。
我有一个类似于Employee Table的java POJO类,它是将转换结果集实现为Employee类对象的最佳方法
-
如果你知道
JPA
,那么这将是最好的选择..你不必进行类型转换来获取你的POJO对象.JPA适用于ORM(对象关系映射)。 它直接将您的POJO
对象映射到数据库表..当您可以直接从数据库中获取对象时.. -
如果除了使用
JDBC
之外别无选择,那么除了TypeCasting
之外TypeCasting
。
如果我有多个类,如Employee和多个表,那么实现的最佳方法是什么,如何编写可重用的代码。
-
对于JDBC,我不知道您正在寻找什么样的可重用性,但是您可以实现一个
DB
类,并在那里拥有所有的Query Templates
。对于您要执行的任何查询,您可以使用class ..这样比较好,而不是有离散的查询,分散在你的应用程序中。 -
再次,如果你可以使用JPA,有一个
Entities
的概念..如果你想使用多个获取,更新或插入数据库,它会更容易..你可以得到适当的对象并将其转储到一个实例您的Entity
,或将您的对象转储到您的数据库,而不必担心任何类型的Queries
。
对于JPA的开始,您可以从以下任何链接开始: –
- http://docs.oracle.com/javaee/5/tutorial/doc/bnbpz.html
- http://www.vogella.com/articles/JavaPersistenceAPI/article.html
- JPA-101-Java的持久性解释的
- 定义-您-对象模型与- JPA
如果您真的想编写可重用代码,请使用http://www.hibernate.org/等ORM工具。