我正在使用JDBC,我的许多类都有一个内部RowMapper类,如下所示:

public class Foo {

class AppleRows implements RowMapper {

public Apple mapRow(ResultSet rs, int rowNum) throws SQLException {

Apple a = new Apple();

a.setName(rs.getString("Name"));

}

}

class AppleRowsJoinedWithSomethingElse implements RowMapper {

public Apple mapRow(ResultSet rs, int rowNum) throws SQLException {

Apple a = new Apple();

a.setName(rs.getString("Name"));

a.setSomethingElse(rs.getString("SomethingElse"));

}

}

}

在上面的示例中,行a.setName(rs.getString(“Name”))正在被复制.这只是一个例子,但在我的实际代码中有超过10个这样的字段.我想知道是否有更好的方法来做到这一点?

注意:我需要不同的映射器,因为我在一些地方使用它们,我正在将结果与另一个表(获取更多字段)联系起来.

最佳答案 你可以扩展使用super.mapRow()…

public class Foo {

class AppleRows implements RowMapper {

public Apple mapRow(ResultSet rs, int rowNum) throws SQLException {

Apple a = new Apple();

a.setName(rs.getString("Name"));

return a;

}

}

class AppleRowsJoinedWithSomethingElse extends AppleRows {

public Apple mapRow(ResultSet rs, int rowNum) throws SQLException {

Apple a = super.mapRow(rs, rowNum);

a.setSomethingElse(rs.getString("SomethingElse"));

return a;

}

}

}

或者只是委托,如果你不喜欢使用继承作为代码重用的机制:

public class Foo {

class AppleRows implements RowMapper {

public Apple mapRow(ResultSet rs, int rowNum) throws SQLException {

Apple a = new Apple();

a.setName(rs.getString("Name"));

return a;

}

}

class AppleRowsJoinedWithSomethingElse implements RowMapper {

public Apple mapRow(ResultSet rs, int rowNum) throws SQLException {

Apple a = new AppleRows().mapRow(rs, rowNum);

a.setSomethingElse(rs.getString("SomethingElse"));

return a;

}

}

}

java中跳转页面的干法_java – 有没有一种干法来整合RowMappers的相同代码?相关推荐

  1. java中跳转页面的两种方法_页面跳转的几种方式

    页面跳转的几种方式: --------------(网络收藏) http头实现页面跳转: out.println(""); content是指跳转的时间间隔,单位为秒 ------ ...

  2. java语言如何跳转界面_在java中spring mvc页面如何跳转,详细图解

    众所周知,java编程语言的应用在当今社会必不可少,它是当下人们提升自己充实自身的重要选择.所以,今天主要来为大家介绍java的入门知识,在 java中spring mvc页面如何跳转,通过详细的图片 ...

  3. 在拦截器中跳转页面和全局的loading且修改loading的图标

    一般axios请求会进行封装,封装的文件中会对拦截器.错误码.全局的loading等做相应的处理. 一.全局loading的实现如下: 在request拦截器中添加loading的配置 import ...

  4. java登录跳转页面

    java登录跳转页面 java文件的编辑方式,任意文本加.java后缀即可,一个java文件只能有一个主类,用public调用,如果要打包成程序包,每个文件前先声明包命,如com.QQH,调试单个文件 ...

  5. java中字母用什么单词赋值_Java初学

    Java-SUN 语言平台J2SE(桌面) ,J2ME(移动被安卓所取代),J2EE(企业主要用于web) 1.跨平台(操作系统)原理: 在任意操作系统上运行,一次编写到处运行. 依赖JVM(Java ...

  6. 在java中的交换方法有哪些_java中交换两个变量的值有哪几种方法,交换两个变量a和b的值...

    java中交换两个变量的值有哪几种方法在Java中,有哪些方法可以交换两个变量的值, 方法: 1.定义临时变量 2.没有必要定义临时变量 3.使用位运算符 (学习视频分享:java课程) 代码示例: ...

  7. java后台跳转页面实现方式

    总结: java后台跳转 @Controller下return一个String类型的跳转链接 注意:如果是@RestController注解下的controller,会将返回的字符串自动包进一个req ...

  8. java中基本字节输出流类是_java中基本输入输出流的解释

    网络程序的很大一部分是简单的输入输出,即从一个系统向另一个系统移动字节.字节就是字节,在很大程度上,读服务器发送的数据与读取文件没什么不同:向客户传送数据与写入一个文件也没有什么区别. Java中输入 ...

  9. Asp.Net中跳转页面有那几种方法

    一.方法 1.<a href="Default.aspx">跳转</a> 2.<asp:HyperLink id="HyperLink1&q ...

最新文章

  1. boost::gil::promote_integral用法的测试程序
  2. 作为餐饮店长最需要什么能力?
  3. 【学习笔记】计算机导论之计算机软件
  4. interpolation algorithm
  5. OpenJDK8-u302-b03哪里去也?
  6. 4×4键盘板:ATMEGA328接口
  7. 文件的输入法程序的字符编码
  8. 篮球c语言程序,源程序C代码:篮球比赛应用系统
  9. 如何制作小游戏(c++教程)(新手版)(1)
  10. java实现图片平铺倾斜水印效果--转载
  11. moviepy图片合成视频
  12. apple id两步验证服务器,如何开启 Apple ID 两步验证
  13. 如何在CAD中加载卫星地图并作街道与建筑绘制
  14. JavaScript获取元素下标的几种方法
  15. MMsegmentation教程1:学习配置文件
  16. 如何快速体验腾迅信鸽推送
  17. pic单片机配置字c语言,PIC单片机配置字说明及使用.pdf
  18. 以己之心,度人之心;将心比心,便是佛心
  19. SQL server 重复数据处理 (根据条件筛选符合merge的数据)
  20. 关于Verilog HDL的一些技巧、易错、易忘点

热门文章

  1. MySQL DBA面试高频三十问
  2. 实战演练:通过伪列、虚拟列实现SQL优化
  3. 边缘计算是流行词还是风口?开发者怎样选开源项目?
  4. 六步带你完成博流wifi模组对接华为云流程
  5. 使用体验神似VS Code?三步带你了解华为云CloudIDE前世今生
  6. 深入比特币原理(四)——锁定脚本(locking script)与解锁脚本(unlocking script)
  7. 【华为敏捷/DevOps实践】3. 如何开好站立会议
  8. 迷宫问题c语言报告,c语言写的迷宫问题
  9. BroadcastReceiver之动态广播 demo+笔记
  10. Android笔记 使用AIDL和远程服务实现进程通信