将行数据从SQL数据映射到Java对象

Mar*_*tin 6 java sql jdbc

我有一个Java类,其实例字段(和匹配的setter方法)匹配SQL数据库表的列名.我想优雅地从表中获取一行(到ResultSet中)并将其映射到该类的实例.

例如:

我有一个"学生"类,其实例字段为"FNAME","LNAME","GRADE",并为每个类提供适当的getter和setter方法.

我还有一个SQL表,其中包含三个同名的列.

现在我正在做这样的事情:

rs = statement.executeQuery(query);

Student student = new Student();

student.setFNAME(rs.getString("FNAME"));
student.setLNAME(rs.getString("LNAME"));
student.setGRADE(rs.getString("GRADE"));
Run Code Online (Sandbox Code Playgroud)

必须有一个不那么冗长的方式,对吧?当我添加列时,这可能会变得非常烦人和混乱.

Pau*_*aul 5

我建议使用Spring JDBC.您不需要使用Spring的其余部分来使用他们的JDBC库.它将为您管理(不关闭连接Connection,StatementResultSet),并有许多便利设施,包括排映.

我们用Spring JDBC改进遗留代码并没有什么问题.

以下是Spring JDBC概述的演示文稿(PDF).虽然没有让Spring注入依赖项,但它已经存在了几年,但它仍然基本相同.

Spring JDBC Presentation PDF


Jam*_*dle 1

您可以使用 ORM,例如 JPA 提供者之一,例如Hibernate。这使您可以在对象和表之间设置映射。