本章需求

  • 查找所有产品的操作
  • 添加产品的操作

查询所有产品流程

添加产品流程

数据库与表结构

product表

序号 字段名称 字段类型 字段描述
1 id varchar2(32) 无意义,主键uuid
2 productNum varchar2(50) 产品编号,唯一,不为空
3 productName varchar2(50) 产品名称(路线名称)
4 cityName varchar2(50) 出发城市
5 DepartureTime timestamp 出发时间
6 productPrice number 出发时间
7 productDesc varchar2(500) 产品描述
8 productStatus int 状态(0 关闭1 开启)

建表与插入数据的sql语句

CREATE TABLE product(
id varchar2(32) default SYS_GUID() PRIMARY KEY,
productNum VARCHAR2(50) NOT NULL,
productName VARCHAR2(50),
cityName VARCHAR2(50),
DepartureTime timestamp,
productPrice Number,
productDesc VARCHAR2(500),
productStatus INT,
CONSTRAINT product UNIQUE (id, productNum)
)insert into PRODUCT (id, productnum, productname, cityname, departuretime, productprice,
productdesc, productstatus)
values ('676C5BD1D35E429A8C2E114939C5685A', 'itcast-002', '北京三日游', '北京', to_timestamp('10-
10-2018 10:10:00.000000', 'dd-mm-yyyy hh24:mi:ss.ff'), 1200, '不错的旅行', 1);
insert into PRODUCT (id, productnum, productname, cityname, departuretime, productprice,
productdesc, productstatus)
values ('12B7ABF2A4C544568B0A7C69F36BF8B7', 'itcast-003', '上海五日游', '上海', to_timestamp('25-
04-2018 14:30:00.000000', 'dd-mm-yyyy hh24:mi:ss.ff'), 1800, '魔都我来了', 0);
insert into PRODUCT (id, productnum, productname, cityname, departuretime, productprice,
productdesc, productstatus)
values ('9F71F01CB448476DAFB309AA6DF9497F', 'itcast-001', '北京三日游', '北京', to_timestamp('10-
10-2018 10:10:00.000000', 'dd-mm-yyyy hh24:mi:ss.ff'), 1200, '不错的旅行', 1);

编写实体类

Product实体类关键代码

    private String id; // 主键private String productNum; // 编号唯一private String productName; // 名称private String cityName; // 出发城市@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")private Date departureTime; // 出发时间private String departureTimeStr;private double productPrice; // 产品价格private String productDesc; // 产品描述private Integer productStatus; // 状态0 关闭1 开启private String productStatusStr;

注意在jsp页面获取出发日期时,需要的是日期字符串,这里将departureTime转换成字符串

    public String getDepartureTimeStr() {if (departureTime != null) {departureTimeStr = DateUtils.date2String(departureTime, "yyyy-MM-dd HH:mm:ss");}return departureTimeStr;}

产品状态同理进行设置,状态0 关闭1 开启

    public String getProductStatusStr() {if (productStatus != null) {// 状态 0,关闭;1,开启productStatusStr = (productStatus == 0) ? "关闭" : "开启";
/*            if (productStatus == 0) {productStatusStr = "关闭";} else {productStatusStr = "开启";}*/}return productStatusStr;}

上面涉及到日期格式转换,需要在ssm_easm_utils模块下com.cncs.utils包下创建工具类DateUtils,在需要进行日期转换的属性的get方法内调用相应方法。

public class DateUtils {/*** Date转为String* @param date  需要进行转换的日期* @param pattern 转换的格式* @return*/public static String date2String(Date date,String pattern){SimpleDateFormat sdf=new SimpleDateFormat(pattern);String format = sdf.format(date);return format;}/*** String转换为Date* @param date  需要进行解析并生成Date类型的字符串* @param pattern   解析的格式* @return* @throws ParseException*/public static Date string2Date(String date,String pattern) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat(pattern);Date parse = sdf.parse(date);return parse;}
}

注解@DateTimeFormat说明:

  • 它只能作用于单个属性上,局部有作用。
  • 将用户输入的日期字符串,按照指定格式转换成Date类型。

编写dao层接口

public interface IProductDao {@Select("select * from product where id=#{id}")Product findById(String id);@Select("select * from product")public List<Product> findAll();@Insert("insert into product(productNum,productName,cityName,departureTime,productPrice,productDesc,productStatus) values(#{productNum},#{productName},#{cityName},#{departureTime},#{productPrice},#{productDesc},#{productStatus})")void save(Product product);
}

编写service层接口

public interface IProductService {public List<Product> findAll();void save(Product product);
}

编写service层实现类

  • 使用@Service注解,将它交给Spring管理
  • 使用@Transactionl注解,表明这个类进行了事务控制
@Service
@Transactional
public class ProductServiceImpl implements IProductService {@Autowiredprivate IProductDao productDao;@Overridepublic List<Product> findAll() {return productDao.findAll();}@Overridepublic void save(Product product) {productDao.save(product);}
}

编写ProductController

@Controller
@RequestMapping("/product")
public class ProductController {@Autowiredprivate IProductService productService;@RequestMapping("/save.do")public String save(Product product){productService.save(product);return "forward:/product/findAll.do";}/*** 查询所有* @return*///@RolesAllowed({"USER","ADMIN"})@RequestMapping("/findAll.do")public ModelAndView findAll(){ModelAndView mv = new ModelAndView();List<Product> list = productService.findAll();//System.out.println(list);mv.addObject("productList",list);mv.setViewName("product-list");return mv;}
}

编写jsp代码

product-list.jsp关键代码

<table id="dataList" class="table table-bordered table-striped table-hover dataTable"><thead><tr><th class="" style="padding-right: 0px;"><inputid="selall" type="checkbox" class="icheckbox_square-blue"></th><th class="sorting_asc">ID</th><th class="sorting_desc">编号</th><th class="sorting_asc sorting_asc_disabled">产品名称</th><th class="sorting_desc sorting_desc_disabled">出发城市</th><th class="sorting">出发时间</th><th class="text-center sorting">产品价格</th><th class="sorting">产品描述</th><th class="text-center sorting">状态</th><th class="text-center">操作</th></tr></thead><tbody><c:forEach items="${productList}" var="product"><tr><td><input name="ids" type="checkbox"></td><td>${product.id }</td><td>${product.productNum }</td><td>${product.productName }</td><td>${product.cityName }</td><td>${product.departureTimeStr }</td><td class="text-center">${product.productPrice }</td><td>${product.productDesc }</td><td class="text-center">${product.productStatusStr }</td><td class="text-center"><button type="button" class="btn bg-olive btn-xs">订单</button><button type="button" class="btn bg-olive btn-xs">详情</button><button type="button" class="btn bg-olive btn-xs">编辑</button></td></tr></c:forEach></tbody>
</table>

注意jsp要使用jstl标签,页面头部需要导入jstl标签库

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

product-add.jsp关键代码

<form action="${pageContext.request.contextPath}/product/save.do" method="post"><!-- 正文区域 --><section class="content"> <!--产品信息--><div class="panel panel-default"><div class="panel-heading">产品信息</div><div class="row data-type"><div class="col-md-2 title">产品编号</div><div class="col-md-4 data"><input type="text" class="form-control" name="productNum"placeholder="产品编号" value=""></div><div class="col-md-2 title">产品名称</div><div class="col-md-4 data"><input type="text" class="form-control" name="productName"placeholder="产品名称" value=""></div><div class="col-md-2 title">出发时间</div><div class="col-md-4 data"><div class="input-group date"><div class="input-group-addon"><i class="fa fa-calendar"></i></div><input type="text" class="form-control pull-right"id="datepicker-a3" name="departureTime"></div></div><div class="col-md-2 title">出发城市</div><div class="col-md-4 data"><input type="text" class="form-control" name="cityName"placeholder="出发城市" value=""></div><div class="col-md-2 title">产品价格</div><div class="col-md-4 data"><input type="text" class="form-control" placeholder="产品价格"name="productPrice" value=""></div><div class="col-md-2 title">产品状态</div><div class="col-md-4 data"><select class="form-control select2" style="width: 100%"name="productStatus"><option value="0" selected="selected">关闭</option><option value="1">开启</option></select></div><div class="col-md-2 title rowHeight2x">其他信息</div><div class="col-md-10 data rowHeight2x"><textarea class="form-control" rows="3" placeholder="其他信息"name="productDesc"></textarea></div></div></div><!--订单信息/--> <!--工具栏--><div class="box-tools text-center"><button type="submit" class="btn bg-maroon">保存</button><button type="button" class="btn bg-default"onclick="history.back(-1);">返回</button></div><!--工具栏/--> </section><!-- 正文区域 /-->
</form>

页面显示效果

product-list.jsp页面显示效果

product-add.jsp页面显示效果

企业权限管理系统第3章--产品操作相关推荐

  1. 企业权限管理系统第4章--订单操作

    本章需求 查询所有订单 订单分页查询 查询订单详情 表关系分析 orders和product是:一对一,这里是旅游产品,一个旅游套餐对应一张订单表. orders和member是:一对一,一张订单对应 ...

  2. SSM框架整合(企业权限管理系统)

    项目简介 基于Spring.SpringMVC.Mybatis框架整合的权限管理系统,主要技术是运用了SpringSecurity框架对用户访问页面的某些模块设置权限,具体可以看下文权限控制核心内容. ...

  3. 基于RBAC模型的通用企业权限管理系统

    1. 为什么我们需要基于RBAC模型的通用企业权限管理系统 管理信息系统是一个复杂的人机交互系统,其中每个具体环节都可能受到安全威胁.构建强健的权限管理系统,保证管理信息系统的安全性是十分重要的.权限 ...

  4. 毕业设计-课程设计-Spring+SpringMVC+Mybatis项目—企业权限管理系统(1)

    JavaEE:Spring+SpringMVC+Mybatis项目-企业权限管理系统 首先给出项目演示地址:http://www.youngxy.top:8080/SSM/ 项目架构图: 一:功能需求 ...

  5. SSM 企业权限管理系统 项目实战

    企业权限管理系统 完整项目github地址: https://github.com/lindaifeng/Authority-Management-System 新增项目: SpringBoot企业权 ...

  6. 企业权限管理系统之角色操作资源权限管理(八)

    文章目录 (一)角色操作:查询所有角色(流程分析) (二)角色操作:查询所有角色(代码实现) (三)角色操作:添加角色(流程分析) (四)角色操作:添加角色(代码实现) (五)角色操作:角色详情查询 ...

  7. 黑马ssm学习笔记-企业权限管理系统

    课程介绍 SVN(功能类似GIT) AdminLTE前端模板 https://github.com/itheima2017/adminlte2-itheima 课程安排 1. 在数据库中建表 创建触发 ...

  8. 企业权限管理系统---用户模块

    用户角色权限表关系 使用数据库完成springSecurity用户登录验证 springSecurity的使用步骤: 1.在web工程的pom.xml文件下导入依赖 <!--Spring Sec ...

  9. Spring+SpringMVC+Mybatis项目—企业权限管理系统(2)

    一:商品查询功能 1.1DAO 1.2业务层 1.3表现层 二:订单查询 1.1DAO 1.2业务层 1.3表现层 三:订单分页 四:Spring Security的使用 五:用户管理 1.1DAO ...

最新文章

  1. erlang节点互相ping,一个能ping通,另外一个不行。
  2. PowerDesigner的逆向工程.
  3. 互联网职场就像一场《鱿鱼游戏》
  4. 函数计算帮助石墨文档突破性能瓶颈,有效节省服务器成本
  5. oracle exchange partition 測试
  6. 深度学习在美团的应用
  7. 电学 —— 家庭用电中的电学现象
  8. 用windows开发ios app_开发一个APP至少需要多少人|安卓|ios|产品经理
  9. 四大关键词解读“智慧乌鲁木齐”密码
  10. java图片透明_Java实现对图片透明化处理
  11. 网页内容变化监控提醒
  12. x10ti怎么禁用核显_笔电多显卡切换解决方案浅谈(ver2.2)
  13. 基于51单片机的8位数码管时钟设计—按键修改时间
  14. java调用opencc将中文简体繁体转换
  15. 遮羞布被撕,业界反思5G的冒进,运营商重视挖掘现有5G网络的潜力
  16. Zabbix 报告缺少可用的交换空间主机 “Lack of free swap space”问题解决
  17. javaweb项目实现连续3次输错密码后禁止登录
  18. UG NX二次开发(C#)-装配-添加组件AddComponent
  19. 我的世界java泰坦生物版_我的世界泰坦生物MOD
  20. 争对让望对思野葛对山栀注解_笠翁对韵带拼音上卷·四支原文解释翻译

热门文章

  1. 《高级无线网络—4G技术》——2.2 码分多址
  2. grpc流式传输示例(c++)
  3. 【面经】数据开发一面-众安保险
  4. Unity播放动画报错:The oldWrappedTime is greater than the newWrappedTime when playback direction is forward
  5. DikDik(视频水印添加软件)官方中文版V4.3.0.0 | 影音转霸2021 | 音频水印制作软件
  6. 三周第一次课(4月2日)
  7. 怼你没商量!Linux之父手删AWS 工程师提交的补丁,表示这是愚蠢的行为,网友:我的快乐又回来了...
  8. 《关键信息基础设施保护条例》已上报国务院有望年内出台​
  9. xmpp协议和socket_什么是XMPP(可扩展消息和状态协议)?
  10. jq 数组不重复_jquery删除数组中重复元素