1. 程式人生 > >按條件查詢的時候,Id預設為0 的情況

按條件查詢的時候,Id預設為0 的情況

這種不帶引數查詢的時候,它會建立一個payformation物件,而這個物件Id預設為0;而在建立的物件它的id就有值了,然後進行查詢

       WHERE

             1=1

            ID=0

這樣查詢出來的就不是全部的,只是查ID=0的。並且如果是按引數查詢不按id查詢,他也會對ID進行設定,比如:

    WHERE

             1=1

      AND custmerId = 12341278L

      AND ID = 0L

      依然會帶著id=0,上面說的是按customerId進行查詢,同樣對id也進行了設定,這就會出現問題。

解決辦法,統一在Mapper中加一句判斷語句。

<if test="@[email protected](metalId) and metalId != 0"> AND ID  =#{id} </if>
package org.haze.bpsms.balance;

import org.haze.base.util.UniqueIdUtil;
import org.haze.bpsms.base.BaseSpringJUnitTest;
import org.haze.bpsms.balance.model.PaymentInformation;
import org.haze.bpsms.balance.service.PaymentInformationService;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.util.Assert;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;


public class PaymentInformationServiceTest extends BaseSpringJUnitTest {
    @Resource
    private PaymentInformationService paymentInformationService;
    private static Long id1; 
    @Before
    public void setUp(){
        try {
            id1 = UniqueIdUtil.genId();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    @After
    public void des(){

    }

    @Test
    public void testInsert(){

        try {
            PaymentInformation paymentInformation = new PaymentInformation();
            paymentInformation.setPaymentId(id1);
            paymentInformation.setDepartmentId(6876L);
            paymentInformation.setCustomerId(1533200726011L);
            paymentInformation.setUserId(13234L);
            paymentInformation.setDocDate(new Date());
            paymentInformation.setKind("收入");
            paymentInformation.setExpenses(32145.34);
            paymentInformation.setStatusKey("wouldApproval");
            paymentInformation.setDocumentCode("1530684656644");



            paymentInformationService.insert(paymentInformation);

            /*使用引數查詢,並檢驗是否insert正確*/
            paymentInformation.setDocDate(null);
            List<PaymentInformation> list = paymentInformationService.select(paymentInformation);
            Assert.notNull(list);
            Assert.isTrue(list.size() >= 1 );
        } catch (Exception e) {
            /*執行出錯則驗證失敗*/
            Assert.isTrue(false);
        }
    }

    @Test
    public void testSelect() {
        try {
            Assert.notNull(paymentInformationService);

            /*不帶引數查詢*/
            PaymentInformation paymentInformation = new PaymentInformation();
            paymentInformation.setPaymentId(null);
            List<PaymentInformation> list = paymentInformationService.select(paymentInformation);
            Assert.notNull(list);
            Assert.isTrue(list.size() > 0);

            /*帶引數查詢,可以帶多個引數,測試mapper中的select */
            paymentInformation.setPaymentId(1533364181668L);
            list = paymentInformationService.select(paymentInformation);
            Assert.isTrue(list.size() >= 1 );

        } catch (Exception e) {
//            e.printStackTrace();
            Assert.isTrue(false);

        }

    }

    @Test
    public void testUpdate(){

        try {
            PaymentInformation paymentInformation = new PaymentInformation();
            paymentInformation.setPaymentId(1533361470888L);
            paymentInformation.setDepartmentId(6876L);
            paymentInformation.setCustomerId(1533200726011L);
            paymentInformation.setUserId(13234L);
            paymentInformation.setDocDate(new Date());
            paymentInformation.setKind("收入");
            paymentInformation.setExpenses(32145.34);
            paymentInformation.setStatusKey("wouldApproval");
            paymentInformation.setDocumentCode("1530684656644");



            paymentInformationService.update(paymentInformation);

            /*使用引數查詢,並檢驗是否update正確*/
            paymentInformation.setDocDate(null);
            List<PaymentInformation> list = paymentInformationService.select(paymentInformation);
            Assert.notNull(list);
            Assert.isTrue(list.size() >= 1 );
        } catch (Exception e) {
            /*執行出錯則驗證失敗*/
            Assert.isTrue(false);
        }
    }

    @Test
    public void testSelectOne(){
        try {
            /* 測試 使用id作為引數的查詢 ,僅返回最多一個結果*/
            PaymentInformation paymentInformation = paymentInformationService.selectOne(1533361470888L);
            Assert.isTrue(paymentInformation.getDocumentCode().equalsIgnoreCase("1530684656644"));
        } catch (Exception e) {
            Assert.isTrue(false);
//            e.printStackTrace();
        }
    }

    @Test
    public void testDelete(){

        try {

            /*使用單個id引數測試刪除*/
            String ids = "1533361494175";
            paymentInformationService.delById(ids);

            /*使用多個id引數測試刪除,中間不能包含空格*/
            ids = "1533355561092,1533360107486";

            paymentInformationService.delById(ids);
        } catch (Exception e) {
            e.printStackTrace();
            Assert.isTrue(false);
        }


    }

}

相關推薦

條件查詢的時候Id預設0情況

這種不帶引數查詢的時候,它會建立一個payformation物件,而這個物件Id預設為0;而在建立的物件它的id就有值了,然後進行查詢        WHERE              1=1             ID=0 這樣查詢出來的就不是全部的,只是查

ORACLE因為字符集不同進行中文條件查詢查詢結果

查詢 數據服務 span code oracl 字符串 客戶 not null lec 在使用C#進行SQL語言或者ASP.NET進行ORACLE數據查詢;當查詢條件有中文存在時,因為數據服務端和客戶端/本機的字符集不同,數據表存在數據,但查詢不出來數據。但使用連接Orac

MyBaits基本操作什麽session.commit()可以引起事物提交?ResultMap結果映射執行添加後返回自增列的值條件查詢智能標簽工具類

info log list image mit fault 類型 工具類 自增列 1.為什麽session.commit()可以引起事務的提交? 首先打開commit()源碼,ctrl+H打開它的實現類DefaultSession,找到它的commit方法 ctrl+左鍵

zlevel分層數值大的覆蓋數值小的預設0

zlevel用於 Canvas 分層,不同zlevel值的圖形會放置在不同的 Canvas 中,Canvas 分層是一種常見的優化手段。 我們可以把一些圖形變化頻繁(例如有動畫)的元件設定成一個單獨的zlevel。 需要注意的是過多的 Canvas 會引起記憶體開銷的增大,在手機端上需要

spring-data-jpa分頁排序條件查詢

public void pageAndSort(int page,int size) { //但條件查詢 Page<Stu> stus = stuDao.findAll(new PageRequest(page,size, Sor

java操作mongdb多條件複合查詢(包括模糊查詢時間段查詢)分頁

最近學了下mongdb,在這兒先和大家分享一下java操作mongdb的多條件查詢,包括模糊查詢,完全匹配查詢和按時間段查詢,以及分頁。 MongoDB是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。他支援的資料結構非常鬆散,

SQL Server 檢測到基於一致性的邏輯 I/O 錯誤 pageid 不正確(應 1:1772但實際 0:0)。在文件 'D:Program FilesMicrosoft SQL Ser

red 完成 sdn blank net tools ocl views 偏移 SQL Server 檢測到基於一致性的邏輯 I/O 錯誤 pageid 不正確(應為 1:1772,但實際為 0:0)。在文件 ‘D:\Program Files\Microsoft S

sql存儲過程根據多個條件查詢返回一個dataTable或者DataSet

bold new exc cnblogs 所有 sql存儲過程 存儲 ring table 不廢話,先直接代碼 首先sql部分(我在這裏加了一個@zx作為判斷,一般不需要這個參數): ALTER Proc [dbo].[Proc_Boss_Show] @StrIndex

8.修改 條件查詢商品 分頁

edi spl stat htm != pic check ren lib 修改商品的原理圖 jsp頁面 edit.jsp <%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib pre

MyBatis的基本操作(02)-----Seeeion.commit引起事務的提交,多條件查詢智能標簽的應用ResultMap結果映射

作用 ces spa 返回 -s != ray like cep 一,為什麽session.commit()可以引起事務的提交? 進入commit()方法查看源碼 進入SqlSession.class文件之後,Ctrl+H彈出右邊的框,選擇DeFaultSqlSessio

Java 數組 要求將以上數組中的 0 項去掉將不 0 的值存入一個新的數組

pac 數組 system 靜態 args 將不 pub bsp clas package com.xuyigang1234.chp01; public class Demo9 { public static void main(String[] args) {

Hibernate 的hql 查詢然後轉換物件

 Hibernate 的hql 查詢,如果繫結的話,一下查詢,會查詢所有繫結的資料。這個不用多說,但是,如果查詢的時候,因為前臺需要展示出來,但是,關聯關係比較複雜,到時候,展示出來也比較複雜。比如我用的是easyui展示到datagrid 中。那個需要轉化。雖然轉化比較簡單,但是,每一個

CF E. Vasya and a Tree】 dfs+樹狀陣列(給你一棵n個節點的樹每個點有一個權值初始全為0,m次操作每次三個數(v, d, x)表示只考慮以v根的子樹將所有與v點距離小於等於d的點權值全部加上x求所有操作完畢後所有節點的值)

題意: 給你一棵n個節點的樹,每個點有一個權值,初始全為0,m次操作,每次三個數(v, d, x)表示只考慮以v為根的子樹,將所有與v點距離小於等於d的點權值全部加上x,求所有操作完畢後,所有節點的值   首先要明確兩件事情性質1.每個人的操作只會影響到他的子孫(包括自己) 性質1.每個人的操

使用通用mapper條件查詢分頁資料(包含Example的使用)

1  步驟:   分頁 ,   新增條件,  返回page物件, 封裝為需要的物件   2  一般分頁資料需要三個引數: 總頁數, 總條數,  物件的集合,    因此可以建立一個通用類,封裝上面的三個引數,具體如下:&nb

uglifyjs-webpack-plugin外掛drop_console預設false(不清除console語句)drop_debugger預設true(清除debugger語句)

uglifyjs-webpack-plugin外掛,drop_console預設為false(不清除console語句),drop_debugger預設為true(清除debugger語句) https://github.com/webpack-contrib/uglifyjs-webpack-plug

mybatis連線資料庫進行查詢返回物件null

*Mapper.xml中程式碼 <select id="query" parameterType="int" resultType="User"> select username , password from user where id=#{id} </select

C#匯出Excel時第一個0時不顯示

只需在前面加上單引號 " ' "可,如下 dcv[2] ="'" +drBH["BH_CHDZ"].ToString(); ;//補貨倉 詳細程式碼如下: private void Report_BHD_Excel_MB()//轉Excel模板;         {

guns查詢分頁查詢分頁模糊查詢模糊查詢

 @ApiOperation(value = "測試")     @RequestMapping(value = "/test",method = RequestMethod.POST)     @ResponseBody     public Object test() {

給定一個二叉樹節點值0-9從根節點到葉子結點組成一個數求二叉樹所有組成的數的和

 根節點 到葉子節點組成一個數 前序遍歷  每層的值都為上一層*10+本層結點的值 int sumNumbers(TreeNode *root) { int sum=0; if(root==NULL) re

Mybatis動態SQL 條件查詢批量刪除

比如說某寶的搜尋。可以新增選擇的嘛。也就是where 後面的條件。如果有12種條件。要是全一個一個寫那是要寫很多哦。mybatis就有動態sql。根據條件組合sql語句。 首先建立個前端頁面 <!DOCTYPE html> <html&