现在我正在填写这样的课程:
Part part = new Part();
ResultSet rs = statement.executeQuery();
part.setBrand(rs.getString("P_BRAND"));
part.setComment(rs.getString("P_COMMENT"));
part.setContainer(rs.getString("P_CONTAINER"));
part.setMfgr(rs.getString("P_MFGR"));
part.setName(rs.getString("P_NAME"));
是否有另一种快速填充零件对象的方法? 类似于那个方法(Part.class,part,rs)并返回一个填充的Part类。
答案 0 :(得分:2)
简答:是的
更长的答案:
答案有几条路线:
答案 1 :(得分:0)
如果您编写构建part
对象的方法,那么您将在那里执行相同的工作以将数据复制到其中。
但是,如果您反复执行part
对象的构造,那么使用方法可以使代码更易于维护和组织。
拥有一个方法并不一定能让它变得更快,它只会使代码更简洁并避免重复代码(即DRY原则)。您可能还想在此处使用Builder模式。
另一种选择是使用Apache BeanUtils - 它为您提供了许多有用的实用方法。
但是,如果您特意说的是始终从JDBC结果集复制到内部DTO对象并愿意利用spring框架,那么您可以使用RowMapper()。还有Hibernate,iBatis等的ORM路由。
答案 2 :(得分:0)
简短回答:不。
原则上,您可以编写一个函数,通过使用反射包从ResultSet中填充bean。但坦率地说,我认为这将是一个笨拙和全面的坏主意。
如果您确实需要通用数据,则可以使用字段名称作为每个条目的键来创建哈希映射。但是对于正常使用,这也是一个坏主意,因为它会在识别出拼写错误的字段名称时产生问题。
简而言之,您最好一个一个地从结果集中复制字段。通常这不是什么大问题。每个字段需要一行代码。我想如果你的桌子上有一百个字段就会很痛苦。
答案 3 :(得分:0)
如果我正确理解您的问题,您可以编辑Part Class的构造函数以接受值...
Part part;
ResultSet rs = statement.executeQuery();
part = new Part(rs.getString("P_BRAND"), rs.getString("P_COMMENT"), rs.getString("P_CONTAINER"),
rs.getString("P_MFGR"), rs.getString("P_NAME"));