简化繁琐的赋值——反射在Jdbc和Struts中的应用
缘起
在Jdbc应用中,我们经常需要有这么样的一个Javabean:当我们从数据库里取值时,我们希望把对应的值赋给Javabean,而后再操作Javabean进行各种业务处理;而我们保存数据的时候,也希望把经过业务处理后的值赋给Javabean,再由该Javabean与Jdbc交互,将数据保存在数据库里。
而在Struts应用中,我们经常要跟ActionForm或DynaActionForm打交道,例如从业面取得用户输入的数据,在Struts应用中,我们实际上是从ActionForm中取得数据;而将数据显示给用户的时候,我们实际上是将数据赋给ActionForm。在实际的应用中,我们经常也有一个中间的Javabean,用来和ActionForm进行打交道,也就是取值、赋值。
以上两种应用,都需要一个中间的Javabean,从数据源取得数据,赋给Javabean;然后再操作Javabean进行业务逻辑的处理;最后通过赋值,将数据从Javabean交给数据源。
这其中都有如下的赋值过程:
stmt = (OracleCallableStatement) conn.prepareCall("{ Call FT_Save_Fabric.ft_fab_colorway_general_insert(" + "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) }");
stmt.setLong(1, fabric.getBom_id());
stmt.setLong(2, general.getColorway_number());
stmt.setLong(3, general.getColor_number());
stmt.setFloat(4, general.getColorway_type_id());
stmt.setString(5, general.getPrint_id());
stmt.setString(6, general.getPrint_name());
stmt.setFloat(7, general.getPrint_type_id());
stmt.setFloat(8, general.getPrint_repeat_type_id());
stmt.setFloat(9, general.getPrint_repeat_height());
stmt.setLong(10, general.getPrint_repeat_height_uom_id());
stmt.setFloat(11, general.getPrint_repeat_width());
stmt.setLong(12, general.getPrint_repeat_width_uom_id());
stmt.setLong(13, general.getPrint_status_id());
stmt.setString(14, general.getYarn_dye_id());
stmt.setString(15, general.getYarn_dye_name());
stmt.setInt(16, general.getYarn_wrap_color_number());
stmt.setInt(17, general.getYarn_weft_color_number());
stmt.setFloat(18, general.getYarn_repeat_height());
推荐文章 |
