【springmvc+mybatis项目实战】杰信商贸-7.生产厂家新增
我们要实现新的功能,就是生产厂家的新增
先来回顾一下系统架构图
我们数据库这边已经建好表了,接下来要做的就是mapper映射
编辑FactoryMapper.xml文件,加入“添加”的逻辑配置代码块
- <!-- 新增 oracle jbdc驱动当这个值为null时,必须告诉它当前字段
- 默认值的类型jdbcType=VARCHAR(MyBatis定义),Mysql不用写-->
- <insert id="insert" parameterType="cn.hpu.jk.domain.Factory">
- insert into factory_c
- (FACTORY_ID,FULL_NAME,FACTORY_NAME,CONTACTS,PHONE,MOBILE,FAX,CNOTE,
- INSPECTOR,ORDER_NO,CREATE_BY,CREATE_DEPT,CREATE_TIME)
- values
- ( #{id},
- #{fullName,jdbcType=VARCHAR},
- #{factoryName,jdbcType=VARCHAR},
- #{contacts,jdbcType=VARCHAR},
- #{phone,jdbcType=VARCHAR},
- #{mobile,jdbcType=VARCHAR},
- #{fax,jdbcType=VARCHAR},
- #{cnote,jdbcType=VARCHAR},
- #{inspector,jdbcType=VARCHAR},
- #{orderNo,jdbcType=INTEGER},
- #{createBy,jdbcType=VARCHAR},
- #{creatDept,jdbcType=VARCHAR},
- #{creatTime,jdbcType=TIMESTAMP}
- )
- </insert>
接下来我们按照系统架构图来继续编写Dao层
其实我们Dao不用写了,因为我们的insert属于日常的增删改查,我们在BaseDaoImpl中已经完成了:
- public void insert(T entity) {
- this.getSqlSession().insert(ns + ".insert", entity);
- }
而我们的FactoryDaoImpl已经继承了BaseDaoImpl,所以不用再写。
接下来编写Service层
我们在FactoryServiceImpl完成insert(Factory factory)方法
- @Override
- public void insert(Factory factory) {
- //设置UUID
- factory.setId(UUID.randomUUID().toString());
- factoryDao.insert(factory);
- }
接下来我们开始写Controller层,在FactoryController中添加下面两个方法
- //转向新增页面
- @RequestMapping("/basicinfo/factory/tocreate.action")
- public String tocreate(){
- return "/baseinfo/factory/jFactoryCreate.jsp";
- }
- //进行新增
- @RequestMapping("/basicinfo/factory/insert.action")
- public String insert(Factory factory){
- factoryService.insert(factory);
- return "redirect:/basicinfo/factory/list.action";//转向列表action
- }
接下来编写我们的jsp视图页面
在我们写界面的时候,我们首先来探讨一下主页设计时企业开发中常见的两种设计方式
a)帧框架frameset table(业务系统)
Framseset帧集合,不能连接具体的页面
Frame帧,可以连接一个jsp/action
b)Div+css+iframe (大型门户网站)
关于相对路径:
页面中直接写title.action
http://localhost/jk/title.action 前面的路径是浏览器给的。规范。
下面我们编写添加页面jFactoryCreate.jsp:
- <%@ page language="java" pageEncoding="UTF-8"%>
- <%@ include file="../../base.jsp"%>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>添加厂家信息</title>
- </head>
- <body>
- <form method="post">
- <div id="menubar">
- <div id="middleMenubar">
- <div id="innerMenubar">
- <div id="navMenubar">
- <ul>
- <li id="save"><a href="#" onclick="formSubmit('insert.action','_self');">确定</a></li>
- <li id="back"><a href="list.action">返回</a></li>
- </ul>
- </div>
- </div>
- </div>
- </div>
- <div class="textbox" id="centerTextbox">
- <div class="textbox-header">
- <div class="textbox-inner-header">
- <div class="textbox-title">
- 新增生产厂家信息
- </div>
- </div>
- </div>
- <div>
- <div>
- <table class="commonTable" cellspacing="1">
- <tr>
- <td class="columnTitle_mustbe">厂家名称:</td>
- <td class="tableContent"><input type="text" name="fullName" /></td>
- <td class="columnTitle_mustbe">简称:</td>
- <td class="tableContent"><input type="text" name="factoryName" /></td>
- </tr>
- <tr>
- <td class="columnTitle_mustbe">联系人:</td>
- <td class="tableContent"><input type="text" name="contacts" /></td>
- <td class="columnTitle_mustbe">电话:</td>
- <td class="tableContent"><input type="text" name="phone" /></td>
- </tr>
- <tr>
- <td class="columnTitle_mustbe">手机:</td>
- <td class="tableContent"><input type="text" name="mobile" /></td>
- <td class="columnTitle_mustbe">传真:</td>
- <td class="tableContent"><input type="text" name="fax" /></td>
- </tr>
- <tr>
- <td class="columnTitle_mustbe">检验员:</td>
- <td class="tableContent"><input type="text" name="inspector" /></td>
- <td class="columnTitle_mustbe">排序号:</td>
- <td class="tableContent"><input type="text" name="orderNo" /></td>
- </tr>
- <tr>
- <td class="columnTitle_mustbe">备注:</td>
- <td class="tableContent"><textarea name="cnote" style="height:200px;width: 400px"></textarea></td>
- </tr>
- </table>
- </div>
- </div>
- </form>
- </body>
- </html>
我们在我们的上一个厂家列表界jFactoryList.jsp面加一个“添加”按钮,指向我们的编辑界面jFactoryCreate.jsp就行了:
- <ul>
- <li id="view"><a href="#" onclick="formSubmit('toview.action','_self');this.blur();">查看</a></li>
- <li id="new"><a href="#" onclick="formSubmit('tocreate.action','_self');this.blur();">添加</a></li>
- </ul>
上次没有加log4j的日志配置文件,为了查看项目的运行日志,我们加一下log4j的配置文件log4j.properties:
- log4j.rootLogger=info, stdout
- #Console
- log4j.appender.stdout=org.apache.log4j.ConsoleAppender
- log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
- log4j.appender.stdout.layout.ConversionPattern=%-5p - %m%n
- #LogFile
- log4j.appender.file=org.apache.log4j.FileAppender
- log4j.appender.file.File=../logs/jklog.log
- log4j.appender.file.layout=org.apache.log4j.PatternLayout
- log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
- #Daily LogFile
- log4j.appender.dayfile=org.apache.log4j.DailyRollingFileAppender
- log4j.appender.dayfile.File=../logs/jklog.log
- log4j.appender.dayfile.DatePattern='.'yyyy-MM-dd'.log'
- log4j.appender.dayfile.Append=true
- log4j.appender.dayfile.layout=org.apache.log4j.PatternLayout
- log4j.appender.dayfile.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
- # LOGIN_LOG_P db config ###
- log4j.appender.logindb=org.apache.log4j.jdbc.JDBCAppender
- log4j.appender.logindb.BufferSize=1
- log4j.appender.logindb.driver=com.mysql.jdbc.Driver
- log4j.appender.logindb.URL=jdbc:mysql://localhost:3306/jkdb?characterEncoding=utf-8
- log4j.appender.logindb.user=root
- log4j.appender.logindb.password=root
- ## MySQL
- #log4j.appender.logindb.sql=INSERT INTO LOGIN_LOG_P(LOGIN_LOG_ID,LOGIN_NAME,IP_ADDRESS,LOGIN_TIME) VALUES(uuid(),'%X{userId}|%X{userName}','%X{ip}','%d{yyyy-MM-dd HH:mm:ss}')
- log4j.appender.logindb.sql=INSERT INTO LOGIN_LOG_P(LOGIN_LOG_ID,LOGIN_NAME,IP_ADDRESS,LOGIN_TIME) VALUES(uuid(),'','',NOW())
- log4j.appender.logindb.layout=org.apache.log4j.PatternLayout
- log4j.logger.org.apache=INFO
- log4j.logger.cn.itcast.jk=DEBUG
然后我们重启服务器,进行测试
我们来添加一个厂家信息:
返回列表界面,发现编辑成功!
【springmvc+mybatis项目实战】杰信商贸-7.生产厂家新增的更多相关文章
- 【springmvc+mybatis项目实战】杰信商贸-5.生产厂家DAO+SERVICE+CONTROLLER+JSP+配置文件
上一篇我们创建了工程和一个Factory的po对象(javaBean),我们也写好了Mapper的映射文件,接下来我们来完成生产厂家的DAO与SERVICE,以及CONTROLLER,还有做显示的JS ...
- 【springmvc+mybatis项目实战】杰信商贸-1.项目背景
1.项目背景杰信项目物流行业的项目,杰信商贸是国际物流行业一家专门从事进出口玻璃器皿贸易的公司.公司总部位于十一个朝代的帝王之都西安,业务遍及欧美.随着公司不断发展壮大,旧的信息系统已无法满足公司的快 ...
- 【springmvc+mybatis项目实战】杰信商贸-6.重点知识回顾
1.重点知识回顾 Maven1)覆盖仓库文件,实际企业开发,公司会架一个测试服务器,在测试服务器中架私服.我们开发人员的程序,都连接私服.当本地没有项目中要使用的jar,Myeclipse maven ...
- 【springmvc+mybatis项目实战】杰信商贸-4.maven依赖+PO对+映射文件
上一篇我们附件的增删改查功能全部完成.但是我们的附件有一个字段叫做“类型”(ctype),这里我们要使用数据字典,所以对于这一块我们要进行修改. 首先介绍一下数据字典 数据字典它是一个通用结构,跟业务 ...
- 【springmvc+mybatis项目实战】杰信商贸-2.数据库配置
首先我们来了解项目的架构 我们分别使用了MySql和Oracle数据库,即是异构数据库.我们做到一个平台支持多个数据库.数据库建模我们使用Sybase公司的PowerDesigner(以后简称PD), ...
- 【springmvc+mybatis项目实战】杰信商贸-3.需求分析与数据库建模
开发步骤需求:生产厂家信息维护基础表FACTORY_C 1.业务需求:a)<需求说明书> 1)描述业务功能 生产厂家模块 功能:为在购销合同模块中的货物信息和附件信 ...
- IDEA中maven搭建Spring+SpringMVC+mybatis项目
一.介绍 使用IDEA搭建maven web项目,整合框架Spring+SpringMVC+mybatis 项目结构图:
- 通过IntelliJ IDEA创建maven+springmvc+mybatis项目
第一个springmvc+mybatis项目,通过学习极客学院视频(视频案例通过eclipse搭建,网址为http://www.jikexueyuan.com/course/1430.html),发现 ...
- springBoot 整合 mybatis 项目实战
二.springBoot 整合 mybatis 项目实战 前言 上一篇文章开始了我们的springboot序篇,我们配置了mysql数据库,但是我们sql语句直接写在controller中并且使用 ...
随机推荐
- ZCMU 2177 Lucky Numbers (easy)
传送门: http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=2177 2177: Lucky Numbers (easy) 时间限制: 2 Sec ...
- 大话Linux内核中锁机制之内存屏障、读写自旋锁及顺序锁
大话Linux内核中锁机制之内存屏障.读写自旋锁及顺序锁 在上一篇博文中笔者讨论了关于原子操作和自旋锁的相关内容,本篇博文将继续锁机制的讨论,包括内存屏障.读写自旋锁以及顺序锁的相关内容.下面首先讨论 ...
- Java中如何判断一个字符串是否为数字
方法一:异常处理 public static boolean isInteger(String str){ try { Integer i = Integer.parseInt(str); retur ...
- 3.Spring Cloud初相识--------Ribbon客户端负载均衡
前言: 在生产环境中,未避免单点故障,每个微服务都会做高可用部署. 通白的说,就是每一个一模一样的服务会根据需求提供多分在多台机器上. 那么在大并发的情况下,如何分配服务可以快速得到响应,就成为了我们 ...
- 生成Html 测试报告
1.引入HTMLTestRunner 下载HTMLTestRunner.py 从http://tungwaiyip.info/software/HTMLTestRunner.html 将下载的HTML ...
- Java 8-Stream流
出处:Java 8 中的 Stream API详解 什么是流 Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator.原始版本的 Iter ...
- Ubuntu16.04测网速
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0b4.tar.xz tar -xvJf Python-3.7.0b4.tar.xz c ...
- sublime Text3安装 markdownediting 报错 解决记录
看了一下官方文档,也是醉了,都怪自己的无知. 在安装时候不要打开.md的文件,因为你里面有可能有一些语法错误,所以会导致报错. 解决方法关闭其他文件,在重新安装! 官方解释: 参考文档:Trouble ...
- PHP程序员的技术成长规划 第二阶段:提高阶段
第二阶段:提高阶段 (中级PHP程序员) 重点:提高针对LNMP的技能,能够更全面的对LNMP有熟练的应用.目标:能够随时随地搭建好LNMP环境,快速完成常规配置:能够追查解决大部分遇到的开发和线上环 ...
- s3c2440存储控制器详解
从上图可知,外部内存类的设备与存储管理器相连,那么CPU是怎样访问到内存的呢?通过存储管理器.CPU比较单纯,只会按照指令执行,CPU只负责发出地址,怎样找到内存类设备呢?这些都交给存储管理器来管理. ...