【springmvc+mybatis項目實戰】傑信商貿-7.生產廠家新增


我們要實現新的功能,就是生產廠家的新增
先來回顧一下系統架構圖

我們數據庫這邊已經建好表了,接下來要做的就是mapper映射

編輯FactoryMapper.xml文件,加入“添加”的邏輯配置代碼塊

[html]  view plain  copy
 
  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 plain  copy
 
  1. public void insert(T entity) {  
  2.     this.getSqlSession().insert(ns + ".insert", entity);  
  3. }  

而我們的FactoryDaoImpl已經繼承了BaseDaoImpl,所以不用再寫。

接下來編寫Service層
我們在FactoryServiceImpl完成insert(Factory factory)方法

[java]  view plain  copy
 
  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 plain  copy
 
  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 plain  copy
 
  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"><href="#" onclick="formSubmit('insert.action','_self');">確定</a></li>  
  15.                     <li id="back"><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 plain  copy
 
  1. <ul>  
  2.     <li id="view"><href="#" onclick="formSubmit('toview.action','_self');this.blur();">查看</a></li>  
  3.     <li id="new"><href="#" onclick="formSubmit('tocreate.action','_self');this.blur();">添加</a></li>  
  4. </ul>  


上次沒有加log4j的日志配置文件,為了查看項目的運行日志,我們加一下log4j的配置文件log4j.properties:

 

[plain]  view plain  copy
 
  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  

 

 

然后我們重啟服務器,進行測試

我們來添加一個廠家信息:


 

返回列表界面,發現編輯成功!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM