【springmvc+mybatis项目实战】杰信商贸-7.生产厂家新增

来源:互联网 发布:centos lnmp 编辑:程序博客网 时间:2024/04/27 11:19
我们要实现新的功能,就是生产厂家的新增
先来回顾一下系统架构图

我们数据库这边已经建好表了,接下来要做的就是mapper映射

编辑FactoryMapper.xml文件,加入“添加”的逻辑配置代码块
[html] view plaincopy
  1. <!-- 新增 oracle jbdc驱动当这个值为null时,必须告诉它当前字段  
  2. 默认值的类型jdbcType=VARCHAR(MyBatis定义),Mysql不用写-->  
  3. <insert id="insert" parameterType="cn.hpu.jk.domain.Factory">  
  4.     insert into factory_c  
  5.         (FACTORY_ID,FULL_NAME,FACTORY_NAME,CONTACTS,PHONE,MOBILE,FAX,CNOTE,  
  6.         INSPECTOR,ORDER_NO,CREATE_BY,CREATE_DEPT,CREATE_TIME)  
  7.     values  
  8.     (   #{id},  
  9.         #{fullName,jdbcType=VARCHAR},  
  10.         #{factoryName,jdbcType=VARCHAR},  
  11.         #{contacts,jdbcType=VARCHAR},  
  12.         #{phone,jdbcType=VARCHAR},  
  13.         #{mobile,jdbcType=VARCHAR},  
  14.         #{fax,jdbcType=VARCHAR},  
  15.         #{cnote,jdbcType=VARCHAR},  
  16.         #{inspector,jdbcType=VARCHAR},  
  17.         #{orderNo,jdbcType=INTEGER},  
  18.         #{createBy,jdbcType=VARCHAR},  
  19.         #{creatDept,jdbcType=VARCHAR},  
  20.         #{creatTime,jdbcType=TIMESTAMP}  
  21.     )  
  22. </insert>  

接下来我们按照系统架构图来继续编写Dao层
其实我们Dao不用写了,因为我们的insert属于日常的增删改查,我们在BaseDaoImpl中已经完成了:
[java] view plaincopy
  1. public void insert(T entity) {  
  2.     this.getSqlSession().insert(ns + ".insert", entity);  
  3. }  
而我们的FactoryDaoImpl已经继承了BaseDaoImpl,所以不用再写。

接下来编写Service层
我们在FactoryServiceImpl完成insert(Factory factory)方法
[java] view plaincopy
  1. @Override  
  2. public void insert(Factory factory) {     
  3.     //设置UUID  
  4.     factory.setId(UUID.randomUUID().toString());  
  5.     factoryDao.insert(factory);  
  6. }  

接下来我们开始写Controller层,在FactoryController中添加下面两个方法
[java] view plaincopy
  1. //转向新增页面  
  2. @RequestMapping("/basicinfo/factory/tocreate.action")  
  3. public String tocreate(){  
  4.     return "/baseinfo/factory/jFactoryCreate.jsp";  
  5. }  
  6.       
  7. //进行新增  
  8. @RequestMapping("/basicinfo/factory/insert.action")  
  9. public String insert(Factory factory){  
  10.     factoryService.insert(factory);  
  11.     return "redirect:/basicinfo/factory/list.action";//转向列表action  
  12. }  

接下来编写我们的jsp视图页面
在我们写界面的时候,我们首先来探讨一下主页设计时企业开发中常见的两种设计方式
a)帧框架frameset table(业务系统)
Framseset帧集合,不能连接具体的页面
Frame帧,可以连接一个jsp/action


b)Div+css+iframe (大型门户网站)

关于相对路径:
页面中直接写title.action
http://localhost/jk/title.action  前面的路径是浏览器给的。规范。

下面我们编写添加页面jFactoryCreate.jsp:
[html] view plaincopy
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <%@ include file="../../base.jsp"%>  
  3. <html xmlns="http://www.w3.org/1999/xhtml">  
  4. <head>  
  5.     <title>添加厂家信息</title>  
  6. </head>  
  7. <body>  
  8.     <form method="post">  
  9.     <div id="menubar">  
  10.         <div id="middleMenubar">  
  11.             <div id="innerMenubar">  
  12.                 <div id="navMenubar">  
  13.                     <ul>  
  14.                     <li id="save"><a href="#" onclick="formSubmit('insert.action','_self');">确定</a></li>  
  15.                     <li id="back"><a href="list.action">返回</a></li>  
  16.                     </ul>  
  17.                 </div>  
  18.             </div>  
  19.         </div>  
  20.     </div>  
  21.            
  22.     <div class="textbox" id="centerTextbox">  
  23.           
  24.         <div class="textbox-header">  
  25.         <div class="textbox-inner-header">  
  26.         <div class="textbox-title">  
  27.             新增生产厂家信息  
  28.         </div>   
  29.         </div>  
  30.         </div>  
  31.     <div>  
  32.         <div>  
  33.             <table class="commonTable" cellspacing="1">  
  34.                 <tr>  
  35.                     <td class="columnTitle_mustbe">厂家名称:</td>  
  36.                     <td class="tableContent"><input type="text" name="fullName" /></td>  
  37.                     <td class="columnTitle_mustbe">简称:</td>  
  38.                     <td class="tableContent"><input type="text" name="factoryName" /></td>  
  39.                 </tr>  
  40.                   
  41.                 <tr>  
  42.                     <td class="columnTitle_mustbe">联系人:</td>  
  43.                     <td class="tableContent"><input type="text" name="contacts" /></td>  
  44.                     <td class="columnTitle_mustbe">电话:</td>  
  45.                     <td class="tableContent"><input type="text" name="phone" /></td>  
  46.                 </tr>  
  47.                   
  48.                 <tr>  
  49.                     <td class="columnTitle_mustbe">手机:</td>  
  50.                     <td class="tableContent"><input type="text" name="mobile" /></td>  
  51.                     <td class="columnTitle_mustbe">传真:</td>  
  52.                     <td class="tableContent"><input type="text" name="fax" /></td>  
  53.                 </tr>  
  54.                   
  55.                  <tr>  
  56.                     <td class="columnTitle_mustbe">检验员:</td>  
  57.                     <td class="tableContent"><input type="text" name="inspector" /></td>  
  58.                     <td class="columnTitle_mustbe">排序号:</td>  
  59.                     <td class="tableContent"><input type="text" name="orderNo" /></td>  
  60.                 </tr>  
  61.                   
  62.                 <tr>  
  63.                     <td class="columnTitle_mustbe">备注:</td>  
  64.                     <td class="tableContent"><textarea  name="cnote" style="height:200px;width: 400px"></textarea></td>  
  65.                 </tr>  
  66.             </table>  
  67.         </div>  
  68.     </div>  
  69.        
  70.     </form>  
  71. </body>  
  72. </html>  

我们在我们的上一个厂家列表界jFactoryList.jsp面加一个“添加”按钮,指向我们的编辑界面jFactoryCreate.jsp就行了:
[html] view plaincopy
  1. <ul>  
  2.     <li id="view"><a href="#" onclick="formSubmit('toview.action','_self');this.blur();">查看</a></li>  
  3.     <li id="new"><a href="#" onclick="formSubmit('tocreate.action','_self');this.blur();">添加</a></li>  
  4. </ul>  

上次没有加log4j的日志配置文件,为了查看项目的运行日志,我们加一下log4j的配置文件log4j.properties:

[plain] view plaincopy
  1. log4j.rootLogger=info, stdout  
  2.   
  3. #Console  
  4. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  5. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  6. log4j.appender.stdout.layout.ConversionPattern=%-5p - %m%n  
  7.   
  8.   
  9. #LogFile  
  10. log4j.appender.file=org.apache.log4j.FileAppender  
  11. log4j.appender.file.File=../logs/jklog.log  
  12. log4j.appender.file.layout=org.apache.log4j.PatternLayout  
  13. log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n  
  14.   
  15.   
  16. #Daily LogFile  
  17. log4j.appender.dayfile=org.apache.log4j.DailyRollingFileAppender   
  18. log4j.appender.dayfile.File=../logs/jklog.log  
  19. log4j.appender.dayfile.DatePattern='.'yyyy-MM-dd'.log'   
  20. log4j.appender.dayfile.Append=true   
  21. log4j.appender.dayfile.layout=org.apache.log4j.PatternLayout  
  22. log4j.appender.dayfile.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n  
  23.   
  24.   
  25. # LOGIN_LOG_P db config ###  
  26. log4j.appender.logindb=org.apache.log4j.jdbc.JDBCAppender  
  27. log4j.appender.logindb.BufferSize=1  
  28. log4j.appender.logindb.driver=com.mysql.jdbc.Driver  
  29. log4j.appender.logindb.URL=jdbc:mysql://localhost:3306/jkdb?characterEncoding=utf-8  
  30. log4j.appender.logindb.user=root  
  31. log4j.appender.logindb.password=root  
  32.   
  33.   
  34. ##  MySQL  
  35. #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}')  
  36. log4j.appender.logindb.sql=INSERT INTO LOGIN_LOG_P(LOGIN_LOG_ID,LOGIN_NAME,IP_ADDRESS,LOGIN_TIME) VALUES(uuid(),'','',NOW())  
  37.   
  38.   
  39. log4j.appender.logindb.layout=org.apache.log4j.PatternLayout  
  40.   
  41.   
  42. log4j.logger.org.apache=INFO  
  43. log4j.logger.cn.itcast.jk=DEBUG  

然后我们重启服务器,进行测试

我们来添加一个厂家信息:




返回列表界面,发现编辑成功!

0 0
原创粉丝点击