mybatis练习三---动态SQL查询练习

1、接口类

  1 /**
  2      * 实现按条件查询订单表,查询条件如下(无内部嵌套)
  3      * 商品名称(模糊查询)
  4      * 供应商(供应商id)
  5      * 是否付款
  6      * @param bill
  7      * @return
  8      */
  9     public Bill getBillByOther(Bill bill);
 10 
 11 
 12 /**
 13      * 改造供应商表的查询功能,使用动态SQL完善此功能
 14      * 查询条件
 15      * 供应商编码(模糊查询)
 16      * 供应商名称(模糊查询)
 17      * @param proCode
 18      * @param proName
 19      * @return
 20      */
 21     public List<Provider> getProviderListByProCodeOrproName(@Param("proCode")String proCode,@Param("proName")String proName);
 22 
 23 
 24 
 25 /**
 26      * 改造供应商表修改操作 (if+set)
 27      * 需更新modifyDate和modifyBy,createBy和creationDate不需要更新
 28      * @param provider
 29      * @return
 30      */
 31     public int updateProviderByProId(Provider provider);
 32 
 33 
 34 
 35 /**
 36      * 改造供应商表修改操作 (if+trim)
 37      * 需更新modifyDate和modifyBy,createBy和creationDate不需要更新
 38      * @param provider
 39      * @return
 40      */
 41     public int updateProviderByProId_iftrim(Provider provider);
 42 
 43 
 44 
 45 /**
 46      * 指定供应商列表(1-n个),获取这些供应商下的订单列表信息 Array
 47      * @param ids
 48      * @return
 49      */
 50     public List<Provider> getProviderByIds_Array(Integer[] ids);
 51 
 52 
 53 
 54 /**
 55      * 指定供应商列表(1-n个),获取这些供应商下的订单列表信息 List
 56      * @param ids
 57      * @return
 58      */
 59     public List<Provider> getProviderByIds_List(List<Integer> ids);
 60 
 61 
 62 
 63 /**
 64      * 实现按条件查询供应商表,查询条件如下
 65      * 供应商编码(模糊查询)
 66      * 供应商名称(模糊查询)
 67      * 供应商联系人(模糊查询)
 68      * 创建时间在本年内(时间范围)
 69      * 查询结果列显示:供应商id、供应商编码、供应商名称、供应商联系人、创建时间
 70      * @param 
 71      * @return
 72      */
 73     public List<Provider> getProviderList_choose(Map<String,String> map);
 74 
 75 
 76 
 77 /**
 78      * 为供应商管理之查询供应商列表功能增加分页实现
 79      * @param proCode 供应商编码
 80      * @param proName proName
 81      * @param currentPageNo 当前页的起始下标
 82      * @param pageSize 页面长度
 83      * @return
 84      */
 85     public List<Provider> getProviderList_fenye(@Param("proCode") String proCode,@Param("proName") String proName,
 86                                                 @Param("from")Integer currentPageNo,
 87                                                 @Param("pageSize")Integer pageSize);
 88 
 89 
 90 
 91 /**
 92      * 为订单管理之查询订单列表功能增分页实现
 93      * @param billCode 账单编码
 94      * @param providerId 供应商ID
 95      * @param currentPageNo 当前页的起始下标
 96      * @param pageSize 页面长度
 97      * @return
 98      */
 99     public List<Bill> getBillList_fenye(@Param("billCode") String billCode,@Param("providerId") String providerId,
100                                                 @Param("from")Integer currentPageNo,
101                                                 @Param("pageSize")Integer pageSize);
接口类

2、Mapper.xml

Mapper.xml

3、测试类

  1     /**
  2      * 实现按条件查询订单表,查询条件如下
  3      * 商品名称(模糊查询)
  4      * 供应商(供应商id)
  5      * 是否付款
  6      */
  7     @Test
  8     public void test07() {
  9         SqlSession sqlSession = myBatisUntil.getSqlSession();
 10         Bill bill = new Bill();
 11         bill.setProductName("皂");
 12         bill.setProviderId(13);
 13         bill.setIsPayment(2);
 14         Bill billByOther = sqlSession.getMapper(ProviderMapper.class).getBillByOther(bill);
 15         if (billByOther == null){
 16             System.out.println("查无信息");
 17         }else {
 18             System.out.println("订单编码:"+billByOther.getBillCode()+"	商品名称"+billByOther.getProductName()
 19                     +"	供应商名称"+billByOther.getProviderName()+"	账单金额"+billByOther.getTotalPrice()
 20                     +"	是否付款"+billByOther.getIsPayment()+"	创建时间"+billByOther.getCreationDate());
 21         }
 22        
 23     }
 24 
 25 
 26 //供应商id、供应商编码proCode、供应商名称proName、联系人proContact、联系电话proPhone、
 27     //传真proFax、创建时间creationDate
 28     @Test
 29     public void test13(){
 30         SqlSession sqlSession= myBatisUntil.getSqlSession();
 31         List<Provider> providers = sqlSession.getMapper(ProviderMapper.class).getProviderListByProCodeOrproName("GYS001", "三木堂");
 32         for (Provider provider : providers) {
 33             System.out.println("供应商id:"+provider.getId()+"供应商编码:"+provider.getProCode()
 34                     +"供应商名称:"+provider.getProName()+"联系人:"+provider.getProContact()
 35                     +"联系电话:"+provider.getProPhone()+"传真:"+provider.getProFax()+"创建时间:"
 36                     +provider.getCreationDate());
 37         }
 38     }
 39 
 40     /**
 41      *     改造供应商表修改操作 (if+set)
 42      *     需更新modifyDate和modifyBy,createBy和creationDate不需要更新
 43      */
 44     @Test
 45     public void test14(){
 46         SqlSession sqlSession= myBatisUntil.getSqlSession();
 47         Provider provider = new Provider();
 48         Date date = new Date();
 49         provider.setId(16);
 50         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");
 51         provider.setModifyDate(simpleDateFormat.format(date));
 52         provider.setModifyBy(2);
 53         int i = sqlSession.getMapper(ProviderMapper.class).updateProviderByProId(provider);
 54         sqlSession.commit();
 55         System.out.println(i);
 56     }
 57 
 58     /**
 59      *     改造供应商表修改操作 (if+trim)
 60      *     需更新modifyDate和modifyBy,createBy和creationDate不需要更新
 61      */
 62     @Test
 63     public void test15(){
 64         SqlSession sqlSession= myBatisUntil.getSqlSession();
 65         Provider provider = new Provider();
 66         Date date = new Date();
 67         provider.setId(16);
 68         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");
 69         provider.setModifyDate(simpleDateFormat.format(date));
 70         provider.setModifyBy(3);
 71         int i = sqlSession.getMapper(ProviderMapper.class).updateProviderByProId_iftrim(provider);
 72         sqlSession.commit();
 73         System.out.println(i);
 74     }
 75 
 76     /**
 77      *     指定供应商列表(1-n个),获取这些供应商下的订单列表信息 array
 78      */
 79     @Test
 80     public void test16(){
 81         SqlSession sqlSession= myBatisUntil.getSqlSession();
 82         Integer[] ids = {2,3};
 83         List<Provider> providerByIds_array = sqlSession.getMapper(ProviderMapper.class).getProviderByIds_Array(ids);
 84         for (Provider provider : providerByIds_array) {
 85             System.out.println("供应商id"+provider.getId()+"供应商编码"+provider.getProCode()
 86                     +"供应商名称:"+provider.getProName()+"联系人:"+provider.getProContact());
 87             for (Bill bill : provider.getBillList()) {
 88                 System.out.println("订单编码:"+bill.getBillCode()+"商品名称:"+bill.getProductName()
 89                         +"订单金额:"+bill.getTotalPrice()+"是否付款(1、未付款 2、已付款):"+bill.getIsPayment());
 90             }
 91         }
 92     }
 93 
 94     /**
 95      *     指定供应商列表(1-n个),获取这些供应商下的订单列表信息 List
 96      */
 97     @Test
 98     public void test17(){
 99         SqlSession sqlSession= myBatisUntil.getSqlSession();
100         List<Integer> ids = new ArrayList<>();
101         ids.add(2);
102         ids.add(3);
103         List<Provider> providerByIds_array = sqlSession.getMapper(ProviderMapper.class).getProviderByIds_List(ids);
104         for (Provider provider : providerByIds_array) {
105             System.out.println("供应商id"+provider.getId()+"供应商编码"+provider.getProCode()
106                     +"供应商名称:"+provider.getProName()+"联系人:"+provider.getProContact());
107             for (Bill bill : provider.getBillList()) {
108                 System.out.println("订单编码:"+bill.getBillCode()+"商品名称:"+bill.getProductName()
109                         +"订单金额:"+bill.getTotalPrice()+"是否付款(1、未付款 2、已付款):"+bill.getIsPayment());
110             }
111         }
112     }
113 
114     /**
115      * 实现按条件查询供应商表,查询条件如下
116      * 供应商编码(模糊查询)
117      * 供应商名称(模糊查询)
118      * 供应商联系人(模糊查询)
119      * 创建时间在本年内(时间范围)
120      * 查询结果列显示:供应商id、供应商编码、供应商名称、供应商联系人、创建时间
121      */
122     @Test
123     public void test18(){
124         SqlSession sqlSession= myBatisUntil.getSqlSession();
125         Map<String,String> map = new HashMap<>();
126         map.put("proCode","");
127         map.put("proName","三木堂");
128         map.put("proContact","");
129         map.put("creationDate","");
130         List<Provider> providerList_choose = sqlSession.getMapper(ProviderMapper.class).getProviderList_choose(map);
131         for (Provider provider : providerList_choose) {
132             System.out.println("供应商id:"+provider.getId()+"供应商编码:"+provider.getProCode()
133                     +"供应商名称:"+provider.getProName()+"供应商联系人:"+provider.getProContact()
134                     +"创建时间:"+provider.getCreationDate());
135         }
136     }
137     
138     @Test
139     public void test19(){
140         SqlSession sqlSession= myBatisUntil.getSqlSession();
141         String proCode = "";
142         String proName = "";
143         Integer from = 3;
144         Integer pageSize = 3;
145         List<Provider> providerList_fenye = sqlSession.getMapper(ProviderMapper.class).getProviderList_fenye(proCode, proName, from, pageSize);
146         for (Provider provider : providerList_fenye) {
147             System.out.println("供应商id:"+provider.getId()+"供应商编码:"+provider.getProCode()
148                     +"供应商名称:"+provider.getProName()+"供应商联系人:"+provider.getProContact()
149                     +"创建时间:"+provider.getCreationDate());
150         }
151     }
152 
153     @Test
154     public void test20(){
155         SqlSession sqlSession= myBatisUntil.getSqlSession();
156         String billCode = "";
157         String providerId = "";
158         Integer from = 0;
159         Integer pageSize = 3;
160         List<Bill> billList_fenye = sqlSession.getMapper(ProviderMapper.class).getBillList_fenye(billCode, providerId, from, pageSize);
161         for (Bill bill : billList_fenye) {
162             System.out.println("订单编码:"+bill.getBillCode()+"商品名称:"+bill.getProductName()
163                     +"订单金额:"+bill.getTotalPrice()+"是否付款(1、未付款 2、已付款):"+bill.getIsPayment());
164         }
165         
166     }
测试类
原文地址:https://www.cnblogs.com/Dean-0/p/11733422.html