zoukankan      html  css  js  c++  java
  • ssm开发的一点小技巧

    一般使用反转工作生成基础bean如Items
    然后我们使用的实体类一般是基础bean的拓展类ItemsCustomer,继承自基础类,这个是为了方便对于表字段的更改生成的bean影响减低
    我们查询一般是使用一个ViewObject VO类

    配置文件的话一般是同名前缀,然后web.xml中配置使用通配符方式,这样便于管理,不需要一个一个include

    dao层中我们只需要写接口,impl由mybatis的mapper代劳
    就是dao层返回的是基于数据表的数据

    然后service是业务层,一系列的逻辑都在service中。service中简单的hibernate的操作的时候我们就是对dao内容的一个复制,在ssm中不是这个样子的,dao中返回的基本类型需要变成拓展类型返回,需要进行拓展操作。
    小例子:
    public ItemCustomer findItemsById(Integer id) throws Exception{
    Items item=itemsMapper.selectByPrimaryKey(id);
    //中间对商品信息进行业务处理
    //...
    //返回ItemsCustom
    ItemsCustom itemsCustom=new ItemsCustom();
    //将Items的属性值拷贝到itemsCustom
    BeanUtils.copyProperties(items,itemsCustom);
    return itemsCustom;

    }
    修改方法的话虽然拓展对象中也包含Id,但是你可以再加一个参数id,将id单独列出来一次,这样别人就很直观的知道你的id是什么,而不用考虑是什么属性获取。数据类型int和Integer的话尽量使用Integer,这样方便进行非空判断,调用mapper中的什么方法也有一点讲究。
    小例子:
    public void updateItems(Integer id,ItemsCustom itemsCustom) throws Exception{
    //添加业务校验,通常在service接口对关键字进行校验
    //校验id是否为空,如果为空抛出异常

    //更新商品信息使用updateByPrimaryKeyWithBLOBS更新items表中所有字段,包括大文本
    //updateByPrimaryKeyWithBLOBS要求主键不能为空,我们这里最好是保险再插入一次
    itemsCustom.setId(id);
    itemsMapper.updateByPrimaryKeyWithBLOBS(itemsCustom);

    }

  • 相关阅读:
    35 个手机和Web应用开发图标集
    20个创意404错误页面设计的启示
    31个不同种类的网站免费滑块巨大集合(PSD文件)
    18个伟大的搜索引擎设计者能够找到高品质的免费图标
    50 个独家免费图标集下载
    C语言对结构体何时用> , 何时用.
    GNU make manual 翻译(一)
    PostgreSQL 的 语法分析调用关系
    GNU make manual 翻译(二)
    PostgreSQL 的 target_list分析(七)
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/6100034.html
Copyright © 2011-2022 走看看