010杰信-创建购销合同Excel报表系列-3-建立合同货物(增删改查):子表

前面分析过购销合同的Excel报表需要四张表,这篇讲的是合同货物表。

这个合同货物表是合同表

项目结构:

前面带红色框框的就是这个需要的domain->Dao层->Service层->到控制层。

具体代码如下:

domain就是数据库中对应的CONTRACT_PRODUCT_C这张表。

如下:

所以domain包中的po类就是:

package cn.itcast.jk.domain;
   //合同货物
public class ContractProduct {
    private String id;// 主键

    private String contractid;// 外键,在这里就是普通的键;
    private String factoryid;

    private String factoryname;//厂家名称
    private String productno;//货号
    private String productimage;//货物照片
    private String productdesc;//货物描述
    private String cnumber;//数量
    private String outnumber;//实际出货数量
    private String loadingrate;//装率
    private String boxnum;//箱数
    private String packingunit;//包装单位
    private String price;//单价
    private String amount;//总金额
    private String finished;//是否出货完毕
    private String exts;//附件
    private String orderno;//排序号
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getContractid() {
        return contractid;
    }
    public void setContractid(String contractid) {
        this.contractid = contractid;
    }
    public String getFactoryid() {
        return factoryid;
    }
    public void setFactoryid(String factoryid) {
        this.factoryid = factoryid;
    }
    public String getFactoryname() {
        return factoryname;
    }
    public void setFactoryname(String factoryname) {
        this.factoryname = factoryname;
    }
    public String getProductno() {
        return productno;
    }
    public void setProductno(String productno) {
        this.productno = productno;
    }
    public String getProductimage() {
        return productimage;
    }
    public void setProductimage(String productimage) {
        this.productimage = productimage;
    }
    public String getProductdesc() {
        return productdesc;
    }
    public void setProductdesc(String productdesc) {
        this.productdesc = productdesc;
    }
    public String getCnumber() {
        return cnumber;
    }
    public void setCnumber(String cnumber) {
        this.cnumber = cnumber;
    }
    public String getOutnumber() {
        return outnumber;
    }
    public void setOutnumber(String outnumber) {
        this.outnumber = outnumber;
    }
    public String getLoadingrate() {
        return loadingrate;
    }
    public void setLoadingrate(String loadingrate) {
        this.loadingrate = loadingrate;
    }
    public String getBoxnum() {
        return boxnum;
    }
    public void setBoxnum(String boxnum) {
        this.boxnum = boxnum;
    }
    public String getPackingunit() {
        return packingunit;
    }
    public void setPackingunit(String packingunit) {
        this.packingunit = packingunit;
    }
    public String getPrice() {
        return price;
    }
    public void setPrice(String price) {
        this.price = price;
    }
    public String getAmount() {
        return amount;
    }
    public void setAmount(String amount) {
        this.amount = amount;
    }
    public String getFinished() {
        return finished;
    }
    public void setFinished(String finished) {
        this.finished = finished;
    }
    public String getExts() {
        return exts;
    }
    public void setExts(String exts) {
        this.exts = exts;
    }
    public String getOrderno() {
        return orderno;
    }
    public void setOrderno(String orderno) {
        this.orderno = orderno;
    }

}

Dao层的代码:

就是BaseDaoImpl.java 的代码:

package cn.itcast.jk.dao.impl;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.beans.factory.annotation.Autowired;

import cn.itcast.jk.dao.BaseDao;
import cn.itcast.jk.pagination.Page;

public abstract class BaseDaoImpl<T> extends SqlSessionDaoSupport implements BaseDao<T>{
    @Autowired
    //mybatis-spring 1.0无需此方法;mybatis-spring1.2必须注入。
    public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){
        super.setSqlSessionFactory(sqlSessionFactory);
    }
     private String ns;        //命名空间
    public String getNs() {
        return ns;
    }
    public void setNs(String ns) {
        this.ns = ns;
    }

    public List<T> findPage(Page page){
        List<T> oList = this.getSqlSession().selectList(ns + ".findPage", page);
        return oList;
    }

    public List<T> find(Map map) {
        List<T> oList = this.getSqlSession().selectList(ns + ".find", map);
        return oList;
    }
    public T get(Serializable id) {
        return this.getSqlSession().selectOne(ns + ".get", id);
    }

    public void insert(T entity) {
        this.getSqlSession().insert(ns + ".insert", entity);
    }

    public void update(T entity) {
        this.getSqlSession().update(ns + ".update", entity);
    }

    public void deleteById(Serializable id) {
        this.getSqlSession().delete(ns + ".deleteById", id);
    }

    public void delete(Serializable[] ids) {
        this.getSqlSession().delete(ns + ".delete", ids);
    }
}

Service层:

package cn.itcast.jk.service.impl;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.itcast.jk.dao.ContractProductDao;
import cn.itcast.jk.domain.Contract;
import cn.itcast.jk.domain.ContractProduct;
import cn.itcast.jk.pagination.Page;
import cn.itcast.jk.service.ContractProductService;
@Service
public class ContractProductServiceImpl implements ContractProductService{
    @Resource
    ContractProductDao contractProductDao;

@Override
public List<ContractProduct> findPage(Page page) {
    return contractProductDao.findPage(page);
}

@Override
public List<ContractProduct> find(Map paraMap) {

    return contractProductDao.find(paraMap);
}

@Override
public ContractProduct get(Serializable id) {
    return contractProductDao.get(id);
}

@Override
public void insert(ContractProduct contractproduct) {
    contractproduct.setId(UUID.randomUUID().toString());
    contractProductDao.insert(contractproduct);

}

@Override
public void update(ContractProduct contractproduct) {
    contractProductDao.update(contractproduct);
}

@Override
public void deleteById(Serializable id) {
    contractProductDao.deleteById(id);
}

@Override
public void delete(Serializable[] ids) {
    contractProductDao.delete(ids);
}

}
时间: 2024-08-25 08:45:32

010杰信-创建购销合同Excel报表系列-3-建立合同货物(增删改查):子表的相关文章

011杰信-创建购销合同Excel报表系列-3-建立合同货物(修改,删除):合同货物表是购销合同表的子表

前面的一篇文章做的是修改删除,这篇文章做的是合同货物的修改和删除. 业务功能如下: 进入上面页面后,有删除和修改两个链接.项目结构如下: 上面的红色框框就是这个功能的代码结构: 我们还是按照Mapper.xml文件->Dao层->Service层->控制层. COntractProductMapper.xml代码如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper

009杰信-创建购销合同Excel报表系列-2-建立购销合同(增删改查)

前面一篇文章已经分析好了数据库的表,这篇文章针对购销合同表做一个增删改查. 和之前的表的增删该查类似. 项目结构如下: 上面红色的框出来的部分就是这个项目要用的文件代码. 依次涵盖了从ContractMapper.xml->Dao层->Service层->Controll控制层 代码依次如下: ContractMapper.xml代码: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYP

cocos2d-x-lua基础系列教程六(lua-table增删改查)

lua-table库 1.插入 table.insert () --假设没有设定位置.默认last位置 样例: myTable = { 1, 2, 3 } myTable.insert(myTable,1,10) for k,v in pairs(myTable) do print (k , v) end 2,删除函数 table.remove(table,pos) tabel.remove() --默认删除最后一位 3 排序函数 table.sort(tableName,sortfunctio

JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查

前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用法,都是写基础应用,根本谈不上封装,仅仅是避免了html控件的取值和赋值,远远没有将MVVM的精妙展现出来.最近项目打算正式将ko用起来,于是乎对ko和bootstraptable做了一些封装,在此分享出来供园友们参考.封装思路参考博客园大神萧秦,如果园友们有更好的方法,欢迎讨论. KnockoutJS系列文章: JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一) JS组件

JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(二)

前言:上篇 JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一) 介绍了下knockout.js的一些基础用法,由于篇幅的关系,所以只能分成两篇,望见谅!昨天就觉得应该快点完成下篇,要不然有点标题党的感觉,思及此,博主心有不安,于是加班赶出了下篇.如果你也打算用ko去做项目,且看看吧! 一.效果预览 其实也没啥效果,就是简单的增删改查,重点还是在代码上面,使用ko能够大量节省界面DOM数据绑定的操作.下面是整个整个增删改查逻辑的js代码: 页面效果: 二.

【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

数据库的创建和sql语句增删改查 1. 加载驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, name varchar(20), age integer ); 添加: insert into person(name, age) values('lisi', 19); 删除: delete from person where _id = 1; 修改: update person set name =

linq的创建 和 数据的增删改查

1.linq创建之前,一定要在sql做好数据表的主外键关系. 2.linq文件是以.dbml结尾,一般一个数据库的名字就是一个linq的名字 3,以实例来演示增删改查 数据库的名字为linq,里面有两个表Users(UserName,Password,Sex,NickName,Birthday,Nation)和Nation(NationCode,NationName) (1)创建名为linq的linq. 创建完之后啥也不用改,如果需要在重新封装类和数据扩展,那就想以前重新建立Users和User

LinQ 创建连接、简单增删改查

LINQ--语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据. 创建连接: 添加新项→LinQ to sql类→重命名为需要用的数据库名→服务器资源管理器→连接到数据库→填写服务器名.用户名密码.连接到数据库的名称→从数据连接中要到要引用的表拖进 数据库名.dbml 中 增删改查表达式 查询: 新建类:数据访问类,添加方法: Data0617Dat

Android(java)学习笔记245:ContentProvider之银行数据库创建和增删改查的实现

1.Android的四大组件: (1)Activity  用户交互的UI界面 (2)Service  后台运行的服务 (3)BroadcastReceiver 广播接收者 (4)ContentProvider  内容提供者 2. ContentProvider  内容提供者 用途:把应用程序私有的数据暴露给别的应用程序. 3.下面通过一个银行数据库创建和增删改查的实现案例说明ContentProvider的使用: (1)首先我们这里要用到数据库,首先我们必须先扩展一个抽象类SQLiteOpenH