Consumables cyp = clservice.findByName("mining", "柴油", "2009","10");
Consumables qyp = clservice.findByName("mining", "汽油", "2009","10");
System.out.println("cyp.price"+cyp.getPrice());
System.out.println("qyp.price"+qyp.getPrice());
Consumables cyp = clservice.findByName("mining", "柴油", "2009","10");
System.out.println("cyp.price"+cyp.getPrice());
Consumables qyp = clservice.findByName("mining", "汽油", "2009","10");
System.out.println("qyp.price"+qyp.getPrice());
前者输出
20
20
后者输出:
30
20
为什么呢?

解决方案 »

  1.   

    price为static变量·················
      

  2.   

    Consumables 怎么定义的
    findByName怎么写的?getPrice怎么写的?
      

  3.   

    代码都舍不得贴 
    我看结果应为
    cyp.price 20
    qyp.price 20 cyp.price 20
    qyp.price 20多贴点不就好了 运行结果也要是 Ctrl+C 所有的结果啊 
      

  4.   

    可能是2楼说的,但是我的Consumables不是static的啊,下边是全代码,有兴趣的看看
    package ztutil;import java.io.File;
    import java.util.ArrayList;import jxl.Workbook;
    import jxl.format.UnderlineStyle;
    import jxl.write.WritableFont;import com.hxsmelt.model.entity.Consumables;
    import com.hxsmelt.model.entity.Machine;
    import com.hxsmelt.model.entity.Vehicle;
    import com.hxsmelt.service.ConsumablesService;
    import com.hxsmelt.service.MachineService;
    import com.hxsmelt.service.OutputService;
    import com.hxsmelt.service.PlanAmountService;
    import com.hxsmelt.service.VehicleService;
    import com.hxsmelt.service.implement.ConsumablesServiceImplement;
    import com.hxsmelt.service.implement.MachineServiceImplement;
    import com.hxsmelt.service.implement.OutputServiceImplement;
    import com.hxsmelt.service.implement.PlanAmountServiceImplement;
    import com.hxsmelt.service.implement.VechicleServiceImplement;
    public class Test2 {
    private static MachineService mservice = new MachineServiceImplement();
    private static ArrayList<Machine> mtotallist = new ArrayList<Machine>();
    private static VehicleService vservice = new VechicleServiceImplement();
    private static ConsumablesService clservice = new ConsumablesServiceImplement();
    private static PlanAmountService paservice = new PlanAmountServiceImplement();
    private static OutputService otservice = new OutputServiceImplement(); // private static ArrayList<Consumables> cltotallist = new
    // ArrayList<Consumables>();
    // private static ArrayList<Vehicle> vtotallist = new ArrayList<Vehicle>();
    // private static ConsumeService cservice = new ConsumeServiceImplement();
    // private static ArrayList<Consume> ctotallist = new ArrayList<Consume>(); /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    // 构建Workbook对象, 只读Workbook对象
    jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(
    "d:/test2.xls"));
    // 创建Excel工作表
    jxl.write.WritableSheet ws = wwb.createSheet("机动车成本表", 0);
    for (int i = 0; i < 3; i++) {
    for (int j = 0; j < mservice.findAll("mining", null).size() * 2 + 5; j++) {
    jxl.write.WritableFont wf1 = new jxl.write.WritableFont(
    WritableFont.TIMES, 18, WritableFont.BOLD, true);
    jxl.write.WritableCellFormat wcfF1 = new jxl.write.WritableCellFormat(
    wf1);
    wcfF1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    wcfF1.setAlignment(jxl.format.Alignment.CENTRE);
    jxl.write.Label labelC = new jxl.write.Label(j, i, "", wcfF1);
    if (i == 0 && j == 0) {
    } else {
    ws.addCell(labelC);
    }
    }
    }
    jxl.format.ScriptStyle.getStyle(6);
    jxl.write.WritableFont wf1 = new jxl.write.WritableFont(
    WritableFont.TIMES, 18, WritableFont.BOLD, true,
    UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
    jxl.write.WritableCellFormat wcfF1 = new jxl.write.WritableCellFormat(
    wf1);
    wcfF1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    wcfF1.setAlignment(jxl.format.Alignment.CENTRE);
    jxl.write.Label labelC = new jxl.write.Label(0, 0, "机动车单车变动成本计算表",
    wcfF1);
    ws.addCell(labelC);
    ws.mergeCells(0, 0, mservice.findAll("mining", null).size() * 2 + 5, 2);
    // 表头名称
    jxl.write.WritableFont wf2 = new jxl.write.WritableFont(
    WritableFont.TIMES, 10, WritableFont.NO_BOLD, false);
    jxl.write.WritableCellFormat wcfF2 = new jxl.write.WritableCellFormat(
    wf2);
    wcfF2.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    wcfF2.setAlignment(jxl.format.Alignment.CENTRE);
    jxl.write.Label labelC03 = new jxl.write.Label(0, 3, "名称", wcfF2);
    jxl.write.Label labelC13 = new jxl.write.Label(1, 3, "", wcfF2);
    jxl.write.Label labelC04 = new jxl.write.Label(0, 4, "", wcfF2);
    jxl.write.Label labelC14 = new jxl.write.Label(1, 4, "", wcfF2);
    ws.addCell(labelC03);
    ws.addCell(labelC13);
    ws.addCell(labelC04);
    ws.addCell(labelC14);
    ws.mergeCells(0, 3, 1, 4);
    // 表头核算内容
    jxl.write.WritableFont wf3 = new jxl.write.WritableFont(
    WritableFont.TIMES, 10, WritableFont.NO_BOLD, false);
    jxl.write.WritableCellFormat wcfF3 = new jxl.write.WritableCellFormat(
    wf3);
    wcfF3.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    wcfF3.setAlignment(jxl.format.Alignment.CENTRE);
    jxl.write.Label labelC23 = new jxl.write.Label(2, 3, "核算内容", wcfF3);
    jxl.write.Label labelC24 = new jxl.write.Label(2, 4, "", wcfF3);
    ws.addCell(labelC23);
    ws.addCell(labelC24);
    ws.mergeCells(2, 3, 2, 4);
    // 表头单位
    jxl.write.WritableFont wf4 = new jxl.write.WritableFont(
    WritableFont.TIMES, 10, WritableFont.NO_BOLD, false);
    jxl.write.WritableCellFormat wcfF4 = new jxl.write.WritableCellFormat(
    wf4);
    wcfF4.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    wcfF4.setAlignment(jxl.format.Alignment.CENTRE);
    jxl.write.Label labelC33 = new jxl.write.Label(3, 3, "单位", wcfF4);
    jxl.write.Label labelC34 = new jxl.write.Label(3, 4, "", wcfF4);
    ws.addCell(labelC33);
    ws.addCell(labelC34);
    ws.mergeCells(3, 3, 3, 4);
    // 车辆编号输出
    mtotallist.clear();
    mtotallist = mservice.findAll("mining", null);
    for (int i = 0; i < mtotallist.size(); i++) {
    jxl.write.WritableFont wf5 = new jxl.write.WritableFont(
    WritableFont.TIMES, 10, WritableFont.NO_BOLD, false);
    jxl.write.WritableCellFormat wcfF5 = new jxl.write.WritableCellFormat(
    wf5);
    wcfF5.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    wcfF5.setAlignment(jxl.format.Alignment.CENTRE);
    jxl.write.Label labelCtemp = new jxl.write.Label(2 * (i) + 4, 3,
    ((Machine) mtotallist.get(i)).getSerialNumber(), wcfF5);
    jxl.write.Label labelCtemp2 = new jxl.write.Label(2 * (i) + 5, 3,
    "", wcfF5);
    jxl.write.Label labelCtemp3 = new jxl.write.Label(2 * (i) + 4, 4,
    "月计", wcfF5);
    jxl.write.Label labelCtemp4 = new jxl.write.Label(2 * (i) + 5, 4,
    "累计", wcfF5);
    ws.addCell(labelCtemp);
    ws.addCell(labelCtemp2);
    ws.addCell(labelCtemp3);
    ws.addCell(labelCtemp4);
    ws.mergeCells(2 * (i) + 4, 3, 2 * (i) + 5, 3);
    }
      

  5.   

    还一段:// 合计
    jxl.write.WritableFont wf6 = new jxl.write.WritableFont(
    WritableFont.TIMES, 10, WritableFont.NO_BOLD, false);
    jxl.write.WritableCellFormat wcfF6 = new jxl.write.WritableCellFormat(
    wf6);
    wcfF6.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    wcfF6.setAlignment(jxl.format.Alignment.CENTRE);
    jxl.write.Label labelCtemp = new jxl.write.Label(
    2 * (mtotallist.size()) + 4, 3, "合计", wcfF6);
    jxl.write.Label labelCtemp2 = new jxl.write.Label(2 * (mtotallist
    .size()) + 5, 3, "", wcfF6);
    jxl.write.Label labelCtemp3 = new jxl.write.Label(2 * (mtotallist
    .size()) + 4, 4, "月计", wcfF6);
    jxl.write.Label labelCtemp4 = new jxl.write.Label(2 * (mtotallist
    .size()) + 5, 4, "累计", wcfF6);
    ws.addCell(labelCtemp);
    ws.addCell(labelCtemp2);
    ws.addCell(labelCtemp3);
    ws.addCell(labelCtemp4);
    ws.mergeCells(2 * (mtotallist.size()) + 4, 3,
    2 * (mtotallist.size()) + 5, 3);
    // 耗材燃油
    for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 5; j++) {
    jxl.write.WritableFont wf7 = new jxl.write.WritableFont(
    WritableFont.TIMES, 10, WritableFont.NO_BOLD, false);
    jxl.write.WritableCellFormat wcfF7 = new jxl.write.WritableCellFormat(
    wf7);
    wcfF7.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    wcfF7.setAlignment(jxl.format.Alignment.CENTRE);
    jxl.write.Label labelCtemp1 = new jxl.write.Label(i, 5 + j, "",
    wcfF7);
    if (i == 0 && j == 0) {
    } else {
    ws.addCell(labelCtemp1);
    }
    }
    }
    jxl.write.WritableFont wf7 = new jxl.write.WritableFont(
    WritableFont.TIMES, 10, WritableFont.NO_BOLD, false);
    jxl.write.WritableCellFormat wcfF7 = new jxl.write.WritableCellFormat(
    wf7);
    wcfF7.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    wcfF7.setAlignment(jxl.format.Alignment.CENTRE);
    jxl.write.Label labelCtemp1 = new jxl.write.Label(0, 5, "燃油", wcfF7);
    ws.addCell(labelCtemp1);
    ws.mergeCells(0, 5, 1, 9);
    jxl.write.WritableFont wf8 = new jxl.write.WritableFont(
    WritableFont.TIMES, 10, WritableFont.NO_BOLD, false);
    jxl.write.WritableCellFormat wcfF8 = new jxl.write.WritableCellFormat(
    wf8);
    wcfF8.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    wcfF8.setAlignment(jxl.format.Alignment.CENTRE);
    jxl.write.Label labelCtemp25 = new jxl.write.Label(2, 5, "数量", wcfF8);
    ws.addCell(labelCtemp25);
    jxl.write.Label labelCtemp35 = new jxl.write.Label(3, 5, "吨", wcfF8);
    ws.addCell(labelCtemp35);
    jxl.write.Label labelCtemp26 = new jxl.write.Label(2, 6, "金额", wcfF8);
    ws.addCell(labelCtemp26);
    jxl.write.Label labelCtemp36 = new jxl.write.Label(3, 6, "元", wcfF8);
    ws.addCell(labelCtemp36);
    jxl.write.Label labelCtemp27 = new jxl.write.Label(2, 7, "计划单耗", wcfF8);
    ws.addCell(labelCtemp27);
    jxl.write.Label labelCtemp37 = new jxl.write.Label(3, 7, "公升/百公里",
    wcfF8);
    ws.addCell(labelCtemp37);
    jxl.write.Label labelCtemp28 = new jxl.write.Label(2, 8, "百公里耗油", wcfF8);
    ws.addCell(labelCtemp28);
    jxl.write.Label labelCtemp38 = new jxl.write.Label(3, 8, "公升/百公里",
    wcfF8);
    ws.addCell(labelCtemp38);
    jxl.write.Label labelCtemp29 = new jxl.write.Label(2, 9, "万米单耗", wcfF8);
    ws.addCell(labelCtemp29);
    jxl.write.Label labelCtemp39 = new jxl.write.Label(3, 9, "公升/百公里",
    wcfF8);
    ws.addCell(labelCtemp39); // 轮胎
    for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 5; j++) {
    jxl.write.Label labelCtemplt = new jxl.write.Label(i, 10 + j,
    "", wcfF7);
    if (i == 0 && j == 0) {
    } else {
    ws.addCell(labelCtemplt);
    }
    }
    }
    jxl.write.Label labelClt = new jxl.write.Label(0, 10, "轮胎", wcfF7);
    ws.addCell(labelClt);
    ws.mergeCells(0, 10, 1, 14);
    jxl.write.Label labelCtemp210 = new jxl.write.Label(2, 10, "数量", wcfF8);
    ws.addCell(labelCtemp210);
    jxl.write.Label labelCtemp310 = new jxl.write.Label(3, 10, "条", wcfF8);
    ws.addCell(labelCtemp310);
    jxl.write.Label labelCtemp211 = new jxl.write.Label(2, 11, "金额", wcfF8);
    ws.addCell(labelCtemp211);
    jxl.write.Label labelCtemp311 = new jxl.write.Label(3, 11, "元", wcfF8);
    ws.addCell(labelCtemp311);
    jxl.write.Label labelCtemp212 = new jxl.write.Label(2, 12, "计划单耗",
    wcfF8);
    ws.addCell(labelCtemp212);
    jxl.write.Label labelCtemp312 = new jxl.write.Label(3, 12, "条/百公里",
    wcfF8);
    ws.addCell(labelCtemp312);
    jxl.write.Label labelCtemp213 = new jxl.write.Label(2, 13, "百公里消耗",
    wcfF8);
    ws.addCell(labelCtemp213);
    jxl.write.Label labelCtemp313 = new jxl.write.Label(3, 13, "条/百公里",
    wcfF8);
    ws.addCell(labelCtemp313);
    jxl.write.Label labelCtemp214 = new jxl.write.Label(2, 14, "万米单耗",
    wcfF8);
    ws.addCell(labelCtemp214);
    jxl.write.Label labelCtemp314 = new jxl.write.Label(3, 14, "条/百公里",
    wcfF8);
    ws.addCell(labelCtemp314); // 电瓶
    for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 5; j++) {
    jxl.write.Label labelCtemplt = new jxl.write.Label(i, 15 + j,
    "", wcfF7);
    if (i == 0 && j == 0) {
    } else {
    ws.addCell(labelCtemplt);
    }
    }
    }
    jxl.write.Label labelCdp = new jxl.write.Label(0, 15, "电瓶", wcfF7);
    ws.addCell(labelCdp);
    ws.mergeCells(0, 15, 1, 19);
    jxl.write.Label labelCtemp215 = new jxl.write.Label(2, 15, "数量", wcfF8);
    ws.addCell(labelCtemp215);
    jxl.write.Label labelCtemp315 = new jxl.write.Label(3, 15, "条", wcfF8);
    ws.addCell(labelCtemp315);
    jxl.write.Label labelCtemp216 = new jxl.write.Label(2, 16, "金额", wcfF8);
    ws.addCell(labelCtemp216);
    jxl.write.Label labelCtemp316 = new jxl.write.Label(3, 16, "元", wcfF8);
    ws.addCell(labelCtemp316);
    jxl.write.Label labelCtemp217 = new jxl.write.Label(2, 17, "计划单耗",
    wcfF8);
    ws.addCell(labelCtemp217);
    jxl.write.Label labelCtemp317 = new jxl.write.Label(3, 17, "条/百公里",
    wcfF8);
    ws.addCell(labelCtemp317);
    jxl.write.Label labelCtemp218 = new jxl.write.Label(2, 18, "百公里消耗",
    wcfF8);
    ws.addCell(labelCtemp218);
    jxl.write.Label labelCtemp318 = new jxl.write.Label(3, 18, "条/百公里",
    wcfF8);
    ws.addCell(labelCtemp318);
    jxl.write.Label labelCtemp219 = new jxl.write.Label(2, 19, "万米单耗",
    wcfF8);
    ws.addCell(labelCtemp219);
    jxl.write.Label labelCtemp319 = new jxl.write.Label(3, 19, "条/百公里",
    wcfF8);
    ws.addCell(labelCtemp319);
      

  6.   

    最后一部分:// 维修费
    for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 5; j++) {
    jxl.write.Label labelCtemplt = new jxl.write.Label(i, 20 + j,
    "", wcfF7);
    if (i == 0 && j == 0) {
    } else {
    ws.addCell(labelCtemplt);
    }
    }
    }
    jxl.write.Label labelCfwx = new jxl.write.Label(0, 20, "维修费", wcfF7);
    ws.addCell(labelCfwx);
    ws.mergeCells(0, 20, 1, 23);
    jxl.write.Label labelCtemp220 = new jxl.write.Label(2, 20, "金额", wcfF8);
    ws.addCell(labelCtemp220);
    jxl.write.Label labelCtemp320 = new jxl.write.Label(3, 20, "元", wcfF8);
    ws.addCell(labelCtemp320);
    jxl.write.Label labelCtemp221 = new jxl.write.Label(2, 21, "计划单耗",
    wcfF8);
    ws.addCell(labelCtemp221);
    jxl.write.Label labelCtemp321 = new jxl.write.Label(3, 21, "元/百公里",
    wcfF8);
    ws.addCell(labelCtemp321);
    jxl.write.Label labelCtemp222 = new jxl.write.Label(2, 22, "百公里消耗",
    wcfF8);
    ws.addCell(labelCtemp222);
    jxl.write.Label labelCtemp322 = new jxl.write.Label(3, 22, "元/百公里",
    wcfF8);
    ws.addCell(labelCtemp322);
    jxl.write.Label labelCtemp223 = new jxl.write.Label(2, 23, "万米单耗",
    wcfF8);
    ws.addCell(labelCtemp223);
    jxl.write.Label labelCtemp323 = new jxl.write.Label(3, 23, "元/百公里",
    wcfF8);
    ws.addCell(labelCtemp323); // 其他材料
    for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 5; j++) {
    jxl.write.Label labelCtemplt = new jxl.write.Label(i, 24 + j,
    "", wcfF7);
    if (i == 0 && j == 0) {
    } else {
    ws.addCell(labelCtemplt);
    }
    }
    }
    jxl.write.Label labelCfqt = new jxl.write.Label(0, 24, "其他材料", wcfF7);
    ws.addCell(labelCfqt);
    ws.mergeCells(0, 24, 1, 27);
    jxl.write.Label labelCtemp224 = new jxl.write.Label(2, 24, "金额", wcfF8);
    ws.addCell(labelCtemp224);
    jxl.write.Label labelCtemp324 = new jxl.write.Label(3, 24, "元", wcfF8);
    ws.addCell(labelCtemp324);
    jxl.write.Label labelCtemp225 = new jxl.write.Label(2, 25, "计划单耗",
    wcfF8);
    ws.addCell(labelCtemp225);
    jxl.write.Label labelCtemp325 = new jxl.write.Label(3, 25, "元/百公里",
    wcfF8);
    ws.addCell(labelCtemp325);
    jxl.write.Label labelCtemp226 = new jxl.write.Label(2, 26, "百公里消耗",
    wcfF8);
    ws.addCell(labelCtemp226);
    jxl.write.Label labelCtemp326 = new jxl.write.Label(3, 26, "元/百公里",
    wcfF8);
    ws.addCell(labelCtemp326);
    jxl.write.Label labelCtemp227 = new jxl.write.Label(2, 27, "万米单耗",
    wcfF8);
    ws.addCell(labelCtemp227);
    jxl.write.Label labelCtemp327 = new jxl.write.Label(3, 27, "元/百公里",
    wcfF8);
    ws.addCell(labelCtemp327);
    // 合计
    for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 2; j++) {
    jxl.write.Label labelCtemplt = new jxl.write.Label(i, 28 + j,
    "", wcfF7);
    if (i == 0 && j == 0) {
    } else {
    ws.addCell(labelCtemplt);
    }
    }
    }
    jxl.write.Label labelCfhj = new jxl.write.Label(0, 28, "合计", wcfF7);
    ws.addCell(labelCfhj);
    ws.mergeCells(0, 28, 1, 29);
    jxl.write.Label labelCtemp228 = new jxl.write.Label(2, 28, "金额", wcfF8);
    ws.addCell(labelCtemp228);
    jxl.write.Label labelCtemp328 = new jxl.write.Label(3, 28, "元", wcfF8);
    ws.addCell(labelCtemp328);
    jxl.write.Label labelCtemp229 = new jxl.write.Label(2, 29, "延米单耗",
    wcfF8);
    ws.addCell(labelCtemp229);
    jxl.write.Label labelCtemp329 = new jxl.write.Label(3, 29, "元/百公里",
    wcfF8);
    ws.addCell(labelCtemp329);
    // 公里数
    for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 1; j++) {
    jxl.write.Label labelCtemplt = new jxl.write.Label(i, 30 + j,
    "", wcfF7);
    if (i == 0 && j == 0) {
    } else {
    ws.addCell(labelCtemplt);
    }
    }
    }
    jxl.write.Label labelCfgls = new jxl.write.Label(0, 30, "公里数", wcfF7);
    ws.addCell(labelCfgls);
    ws.mergeCells(0, 30, 2, 30);
    jxl.write.Label labelCtemp330 = new jxl.write.Label(3, 30, "公里", wcfF8);
    ws.addCell(labelCtemp330); for (int i = 0; i < mtotallist.size(); i++) {
    Machine m = (Machine) mtotallist.get(i);
    Consumables cyp = clservice.findByName("mining", "柴油", "2009","10");
    System.out.println("cyp.price"+cyp.getPrice());
    Consumables qyp = clservice.findByName("mining", "汽油", "2009","10");
    System.out.println("qyp.price"+qyp.getPrice());
    // Consumables cstires = clservice.findByName("mining", "轮胎", "2009", "10");
    // Consumables csbattery = clservice.findByName("mining", "电瓶","2009", "10");
    double ryou = 0;
    double ryouamount=0;
    String ru = "";
    double cyou = vservice.sum("mining", m.getSerialNumber(),new java.sql.Date(new java.util.Date().getTime()), "cyou");
    double qyou = vservice.sum("mining", m.getSerialNumber(),new java.sql.Date(new java.util.Date().getTime()), "qyou");
    if (cyou > 0) {
    ryou = cyou;
    System.out.println("cyou= "+cyou+" price="+cyp.getPrice());
    ryouamount=cyp.getPrice();
    ru = "柴油";
    } else {
    ryou = qyou;
    System.out.println("qyou= "+qyou+" price="+qyp.getPrice());
    ryouamount=qyp.getPrice();
    ru = "汽油";
    }
    double repair = vservice.sum("mining", m.getSerialNumber(), new java.sql.Date(new java.util.Date().getTime()), "repair");
    double tires = vservice.sum("mining", m.getSerialNumber(), new java.sql.Date(new java.util.Date().getTime()), "tires");
    double battery = vservice.sum("mining", m.getSerialNumber(),new java.sql.Date(new java.util.Date().getTime()), "battery");
    double other = vservice.sum("mining", m.getSerialNumber(), new java.sql.Date(new java.util.Date().getTime()), "other");
    jxl.write.Number labelN11 = new jxl.write.Number(4 + 2 * i, 5, ryou);
    jxl.write.Number labelN12 = new jxl.write.Number(5 + 2 * i, 5, -1);
    jxl.write.Number labelN21 = new jxl.write.Number(4 + 2 * i, 6, ryouamount);
    jxl.write.Number labelN22 = new jxl.write.Number(5 + 2 * i, 6,-1);
    jxl.write.Number labelN31 = new jxl.write.Number(4 + 2 * i, 7,paservice.findByname("mining", ru, "2009", m.getSerialNumber()));
    jxl.write.Number labelN32 = new jxl.write.Number(5 + 2 * i, 7,-1);
    jxl.write.Number labelN41 = new jxl.write.Number(4 + 2 * i, 8, ryou / otservice.sumBymnumber("mining", m.getSerialNumber(), m.getType(), "2009", "10") / 100);
    jxl.write.Number labelN42 = new jxl.write.Number(5 + 2 * i, 8,-1);
    jxl.write.Number labelN51 = new jxl.write.Number(4 + 2 * i, 9, ryou/ otservice.sumBymnumber("mining", m.getSerialNumber(), m.getType(), "2009", "10") / 10);
    jxl.write.Number labelN52 = new jxl.write.Number(5 + 2 * i, 9,-1);
    ws.addCell(labelN11);
    ws.addCell(labelN12);
    ws.addCell(labelN21);
    ws.addCell(labelN22);
    ws.addCell(labelN31);
    ws.addCell(labelN32);
    ws.addCell(labelN41);
    ws.addCell(labelN42);
    ws.addCell(labelN51);
    ws.addCell(labelN52);
    }
    jxl.write.WritableSheet sheet = wwb.getSheet(0);
    sheet.setColumnView(0, 3);
    sheet.setColumnView(1, 2);
    sheet.setColumnView(2, 10);
    sheet.setColumnView(3, 10);
    // 写入Exel工作表
    wwb.write();
    // 关闭Excel工作薄对象
    wwb.close(); }}
      

  7.   

    贴这么多代码有意义吗?
    Consumables cyp = clservice.findByName("mining", "柴油", "2009","10");只要贴Consumables 类
    和clservice类包含findByName方法即可
      

  8.   

    Consumables类:
    package com.hxsmelt.model.entity;import java.io.Serializable;public class Consumables implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private long id;
    private String consumablesModel;
    private String consumablesName;
    private String unit;
    private double price;
    private String year;
    private String month;
    private String department;
    public String getYear() {
    return year;
    }
    public void setYear(String year) {
    this.year = year;
    }
    public Consumables() {
    super();
    // TODO Auto-generated constructor stub
    }
    @Override
    public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + (int) (id ^ (id >>> 32));
    return result;
    }
    @Override
    public boolean equals(Object obj) {
    if (this == obj)
    return true;
    if (obj == null)
    return false;
    if (getClass() != obj.getClass())
    return false;
    Consumables other = (Consumables) obj;
    if (id != other.id)
    return false;
    return true;
    }
    public long getId() {
    return id;
    }
    public void setId(long id) {
    this.id = id;
    }
    public String getConsumablesModel() {
    return consumablesModel;
    }
    public void setConsumablesModel(String consumablesModel) {
    this.consumablesModel = consumablesModel;
    }
    public String getConsumablesName() {
    return consumablesName;
    }
    public void setConsumablesName(String consumablesName) {
    this.consumablesName = consumablesName;
    }
    public String getUnit() {
    return unit;
    }
    public void setUnit(String unit) {
    this.unit = unit;
    }
    public double getPrice() {
    return price;
    }
    public void setPrice(double price) {
    this.price = price;
    }
    public String getMonth() {
    return month;
    }
    public void setMonth(String month) {
    this.month = month;
    }
    public String getDepartment() {
    return department;
    }
    public void setDepartment(String department) {
    this.department = department;
    }
    }findByName方法:private Consumables u = new Consumables();
    public Consumables findByName(String dep, String cname,String year,String month) {
    // TODO Auto-generated method stub
    Session session = HbnUtil.getSession();
    Connection connection = session.connection();
    Statement stmt = null;
    ResultSet rs = null;  
    // System.out.println("dep="+dep+" cname="+cname+" year="+year+" month="+month);
    String sql = "select * from Consumables_t where z_dep='"+dep+"' and z_cname='"+cname+"' and z_year='"+year+"' and z_month='"+month+"' order by z_id desc";
    try {
    stmt = connection.createStatement();
    rs = stmt.executeQuery(sql);
    while(rs.next()){
    u.setId(rs.getLong(1));
    u.setConsumablesModel(rs.getString(2));
    u.setConsumablesName(rs.getString(3));
    u.setYear(rs.getString(4));
    u.setMonth(rs.getString(5));
    u.setDepartment(rs.getString(6));
    u.setPrice(rs.getDouble(7));
    u.setUnit(rs.getString(8));
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    HbnUtil.release(rs, stmt, connection, session);
    }
    return u;}
      

  9.   

    问题出在findName方法,你的返回值u,注意,这个u是在方法外new()的,连续两回调用findName方法返回的是一个Consumables 对像,只是修改了属性,
    应该把u定义在方法内,
      

  10.   

    你没new()?
    public Consumables findByName(String dep, String cname,String year,String month) {
            // TODO Auto-generated method stub
            Consumables u = new Consumables();
            Session session = HbnUtil.getSession();
            Connection connection = session.connection();        Statement stmt = null;
            ResultSet rs = null;  
    //        System.out.println("dep="+dep+" cname="+cname+" year="+year+" month="+month);
            String sql = "select * from Consumables_t where z_dep='"+dep+"' and z_cname='"+cname+"' and z_year='"+year+"' and z_month='"+month+"' order by z_id desc";
            try {
                stmt = connection.createStatement();
                rs = stmt.executeQuery(sql);
                while(rs.next()){
                    u.setId(rs.getLong(1));
                    u.setConsumablesModel(rs.getString(2));
                    u.setConsumablesName(rs.getString(3));
                    u.setYear(rs.getString(4));
                    u.setMonth(rs.getString(5));
                    u.setDepartment(rs.getString(6));
                    u.setPrice(rs.getDouble(7));
                    u.setUnit(rs.getString(8));
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                HbnUtil.release(rs, stmt, connection, session);
            }
            return u;}
      

  11.   

    public Consumables findByName(String dep, String cname,String year,String month) {
            // TODO Auto-generated method stub
            Consumables u = new Consumables();//这样会有空指针?不可能吧
            Session session = HbnUtil.getSession();
            Connection connection = session.connection();        Statement stmt = null;
            ResultSet rs = null;  
    //        System.out.println("dep="+dep+" cname="+cname+" year="+year+" month="+month);
            String sql = "select * from Consumables_t where z_dep='"+dep+"' and z_cname='"+cname+"' and z_year='"+year+"' and z_month='"+month+"' order by z_id desc";
            try {
                stmt = connection.createStatement();
                rs = stmt.executeQuery(sql);
                while(rs.next()){
                    u.setId(rs.getLong(1));
                    u.setConsumablesModel(rs.getString(2));
                    u.setConsumablesName(rs.getString(3));
                    u.setYear(rs.getString(4));
                    u.setMonth(rs.getString(5));
                    u.setDepartment(rs.getString(6));
                    u.setPrice(rs.getDouble(7));
                    u.setUnit(rs.getString(8));
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                HbnUtil.release(rs, stmt, connection, session);
            }
            return u;}
      

  12.   

    Consumables u = new Consumables() 是在 clservice 这个类里声明的,这个类只有一个实例,所以会出现上面的情况。
      

  13.   

    使用局部变量mrservice把问题解决了,谢谢大家