首頁>技術>

之前的時候寫過一篇文章,因為各種原因,需要搭建一套ssm框架,上次的時候就是搭建了一套框架,但是其中相應的程式碼實現並沒有新增進去,今天咱就完整起來,搭建一個測試程式碼,當然大家不需要非要用我的,再網上有很多相應的程式碼文章,只不過我的這個有點傻瓜式的,直接cv程式碼即可,不出問題是可以直接執行的

好了,話不多說,看正文吧

配置spring容器等相關配置檔案

1. 在pom.xml(位置:專案的根目錄下)中引入必要的pom依賴(其中包括了spring、springmvc、jdbc、mysql、druid連線池、mybatis、lombok外掛、juni他、其他工具包 ),相關的程式碼我在之前的文章中已經公佈,大家可以自行下載

如果想要自己新增jar包,可以在WEB-INF中新建lib資料夾,然後放入你的jar包(poom依賴下載的jar包編譯過後其實也就是在編譯包下的lib資料夾中)

每次更改pom依賴後,記得更新jar包,一般右下角都會彈出更新提示

2. 配置web.xml檔案(位置:webapp下的WEB-INF中)  tomcat啟動時,會載入此檔案,從而掃描載入其他的配置檔案

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"         version="4.0"></web-app>

其中包括了編碼過濾、監聽器、springmvc配置、spring容器中其他配置包括mybatis等、log4j配置、專案訪問預設歡迎頁,如需新增自定義過濾器,也許在此配置

3. 新建其他配置檔案(位置:resoures下) applicationContext.xml、springmvc.xml、mybatis.xml、jdbc.properties、日誌配置(log4j.properties和log4j.xml二選一,我用的log4j.xml)

 spring-mvc.xml

  後來的其他配置檔案也可以在這個裡邊引入比如:shiro、redis叢集、cache-redis快取、自定義元件等等(優點:不用再去動web.xml的配置)

 spring-mybatis.xml

建立這個配置檔案的時候一定要注意自己的資料庫的ip連結,賬號和密碼,我這邊使用的虛擬機器的資料庫,本地沒有安裝,所以這個地方我用的是我虛擬機器的ip地址

#mysqljdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://192.168.79.7:3306/test?useUnicode=true&characterEncoding=utf-8jdbc.username=rootjdbc.password=123456jdbc.initialSize=3jdbc.maxActive=1000jdbc.minIdle=0jdbc.maxWait=6000jdbc.removeAbandoned=truejdbc.removeAbandonedTimeout=1800jdbc.timeBetweenEvictionRunsMillis=60000jdbc.minEvictableIdleTimeMillis=25200000jdbc.validationQuery=select getdate()jdbc.testWhileIdle=falsejdbc.testOnBorrow=falsejdbc.testOnReturn=false

 log4j.xml

好了,經過以上一套噼裡啪啦的操作,配置基本算是好了,接下來讓我們寫程式碼檢驗一下我們的配置到底對不對呢,激動人心的時刻就要來了

六、編寫程式碼測試

1. java資料夾下,新建package包com.biws,另外再新建包括controller、mapper、model、service的四個包

建立包,然後建立對應的類,這是我建立完成之後的一個目錄結構,這個地方先建立包結構,然後再去建立了,按照我下面的步驟建立類,不然會報錯

2. 在每個包下分別新建程式碼檔案:TestController.java、TpmTestLogService.java、TpmTestLogServiceImpl.java、TpmTestLogMapper.java、TpmTestLogMapper.xml、TpmTestLog

 實體類:TpmTestLog.java

 package com.biws.model;import lombok.Data;import java.io.Serializable;/** * @author :biws * @date :Created in 2020/12/19 21:59 * @description: */@Datapublic class TpmTestLog implements Serializable{    /**     * @備註: 主鍵     * @欄位:LOG_UUID bigint     */    private Long logUuid;    /**     * @備註:     * @欄位:TESTMAIN_UUID CHAR(32)     */    private String testmainUuid;    /**     * @備註:     * @欄位:OPERATION VARCHAR(20)     */    private String operation;    /**     * @備註:     * @欄位:SYSCREATEDATE VARCHAR(25)     */    private String syscreatedate;    public Long getLogUuid() {        return logUuid;    }    public void setLogUuid(Long logUuid) {        this.logUuid = logUuid;    }    public String getTestmainUuid() {        return testmainUuid;    }    public void setTestmainUuid(String testmainUuid) {        this.testmainUuid = testmainUuid;    }    public String getOperation() {        return operation;    }    public void setOperation(String operation) {        this.operation = operation;    }    public String getSyscreatedate() {        return syscreatedate;    }    public void setSyscreatedate(String syscreatedate) {        this.syscreatedate = syscreatedate;    }    @Override    public String toString() {        return "TpmTestLog{" +                "logUuid=" + logUuid +                ", testmainUuid='" + testmainUuid + '\'' +                ", operation='" + operation + '\'' +                ", syscreatedate='" + syscreatedate + '\'' +                '}';    }}

 資料庫互動層dao介面:TpmTestLogMapper.java

package com.biws.mapper;import com.biws.model.TpmTestLog;/** * @author :biws * @date :Created in 2020/12/19 21:56 * @description: */public interface TpmTestLogMapper {    Long insert(TpmTestLog tpmTestLog);}

 對應的xml:TpmTestLogMapper.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.test.mapper.TpmTestLogMapper">    <resultMap type="com.test.model.TpmTestLog" id="mTpmTestLog" autoMapping="true">    </resultMap>    <sql id="mTpmTestLogSql">        LOG_UUID AS logUuid,        TESTMAIN_UUID AS testmainUuid,        OPERATION AS operation,        SYSCREATEDATE AS syscreatedate    </sql>    <insert id="insert" parameterType="TpmTestLog" useGeneratedKeys="true" keyProperty="logUuid">      INSERT INTO TPM_TEST_LOG (LOG_UUID,                                          TESTMAIN_UUID,                                          OPERATION,                                          SYSCREATEDATE)              VALUES   (#{logUuid},                          #{testmainUuid},                          #{operation},                          #{syscreatedate})    </insert></mapper>

 業務層介面類sercice:TpmTestLogService.java

package com.biws.service;import com.biws.model.TpmTestLog;/** * @author :biws * @date :Created in 2020/12/19 21:55 * @description: */public interface TpmTestLogService {    Long ceshi(TpmTestLog tpmTestLog);}

 業務層的實現類impl:TpmTestLogServiceImpl.java

package com.biws.service.impl;import com.biws.mapper.TpmTestLogMapper;import com.biws.model.TpmTestLog;import com.biws.service.TpmTestLogService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;/** * @author :biws * @date :Created in 2020/12/19 21:59 * @description: */@Service@Transactionalpublic class TmpTestLogServiceImpl  implements TpmTestLogService {    @Autowired    private TpmTestLogMapper tpmTestLogMapper;    @Override    public Long ceshi(TpmTestLog tpmTestLog) {        return tpmTestLogMapper.insert(tpmTestLog);    }}

 介面邏輯層controller:TestController.java

package com.biws.controller;import com.alibaba.fastjson.JSONObject;import com.biws.model.TpmTestLog;import com.biws.service.TpmTestLogService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * @author :biws * @date :Created in 2020/12/19 21:55 * @description: */@RestController@RequestMapping("/api")public class TestController {    @Autowired    private TpmTestLogService tpmTestLogService;    @GetMapping("/test")    public JSONObject test(){        JSONObject jsonObject = new JSONObject();        TpmTestLog tpmTestLog = new TpmTestLog();        tpmTestLog.setSyscreatedate("asfasgags");        tpmTestLog.setTestmainUuid("fdasgassfsarew");        tpmTestLog.setOperation("新增");        tpmTestLogService.ceshi(tpmTestLog);        jsonObject.put("title", "測試成功" + tpmTestLog.getLogUuid());        return jsonObject;    }}

3. 資料庫互動,測試表以及資料庫連線檔案jdbc中的配置(文中5.3已有配置檔案) Table:TPM_TEST_LOG  

SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------  Table structure for `TPM_TEST_LOG`-- ----------------------------DROP TABLE IF EXISTS `TPM_TEST_LOG`;CREATE TABLE `TPM_TEST_LOG` (  `LOG_UUID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',  `TESTMAIN_UUID` varchar(32) COLLATE utf8_bin DEFAULT NULL,  `OPERATION` varchar(20) COLLATE utf8_bin DEFAULT NULL,  `SYSCREATEDATE` varchar(25) COLLATE utf8_bin DEFAULT NULL,  PRIMARY KEY (`LOG_UUID`)) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;SET FOREIGN_KEY_CHECKS = 1;

4. 測試介面 因為是寫的測試是get請求,所以可以直接在瀏覽器中測試,位址列輸入介面地址(4.4中你配置的地址),回車訪問,如下圖

七、前端頁面和介面互動測試

1. 編寫前端頁面測試程式碼(不要說你是後臺,不會寫前端程式碼,不會也沒關係,直接copy吧,有問題找google)

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><p>執行到這裡了</p><script>    window.onload = function () {        //步驟一:建立非同步物件        var ajax = new XMLHttpRequest();        //步驟二:設定請求的url引數,引數一是請求的型別,引數二是請求的url,可以帶引數,動態的傳遞引數starName到服務端        ajax.open('get', '/api/test');        //步驟三:傳送請求        ajax.send();        //步驟四:註冊事件 onreadystatechange 狀態改變就會呼叫        ajax.onreadystatechange = function () {            if (ajax.readyState == 4 && ajax.status == 200) {                //步驟五 如果能夠進到這個判斷 說明 資料 完美的回來了,並且請求的頁面是存在的                console.log(ajax.responseText);//輸入相應的內容                console.log(JSON.parse(ajax.responseText).title);                console.log(document.getElementsByTagName("h2")[0])                document.getElementsByTagName("h2")[0].innerText = JSON.parse(ajax.responseText).title;            }        }    }</script></body></html>

2. 接下來見證奇蹟,開啟頁面地址:http://localhost:8085/index.html

 後臺經過與資料庫互動後,把插入資料庫後生成的主鍵4返回給前端,前端顯示在頁面中

22
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 最令開發者討厭的4門程式語言,看看有沒有你喜歡的那門