SpringMybatis3

练习1:
1.数据访问层接口:BillMapper

package com.leisong.dao;

import com.leisong.domain.Bill;
import java.util.List;

public interface BillMapper {
    //根据商品名称,供应商id,是否付款  进行查询
    public List<Bill> getBillByProName(Bill bill);
    //根据供应商id获取这些对应商的订单列表信息,数组作为参数
    public List<Bill> getBillByProviderIdArray(Integer[] arrs);

    //根据供应商id获取这些对应商的订单列表信息,List作为参数
    public List<Bill> getBillByProviderIdList(List<Integer> list);
}

2.BillMapper的映射文件:BillMapper.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.leisong.dao.BillMapper">
    <select id="getBillByProName" resultMap="billList">
    select b.billCode,b.productName,b.totalPrice,b.isPayment,b.creationDate,p.proName
          from smbms_bill b,smbms_provider p where b.productName like concat('%',#{productName},'%') and b.isPayment=#{isPayment}
          and b.providerId=p.id
  </select>
    <!--     遍历数组参数-->
    <select id="getBillByProviderIdArray" resultMap="billList">

        select * from smbms_bill where 1=1
        and providerId in
        <foreach collection="array" item="arrs" open="(" separator="," close=")">
            #{arrs}
        </foreach>


    </select>
    <!--遍历list集合-->
    <select id="getBillByProviderIdList" resultMap="billList">

        select * from smbms_bill where 1=1
        and providerId in
        <foreach collection="list" item="list" open="(" separator="," close=")">
            #{list}
        </foreach>


    </select>

    <resultMap id="billList" type="com.leisong.domain.Bill">
        <id property="id" column="id"></id>
        <result property="providerName" column="proName"></result>
    </resultMap>
</mapper>

3.测试

package com.leisong.test;

import com.leisong.dao.BillMapper;
import com.leisong.domain.Bill;
import com.leisong.util.MybatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

public class TestBill {
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        Bill bill = new Bill();
        bill.setProductName("油");
        bill.setProviderId(3);
        bill.setIsPayment(5);
        List<Bill> list = sqlSession.getMapper(BillMapper.class).getBillByProName(bill);

        for(Bill b : list){
            System.out.println(b.getBillCode()+"\t"+b.getProductName()+"\t"+b.getProviderName());
        }
        MybatisUtil.closeSqlsession(sqlSession);

    }
    @Test
    public void test1(){
        //测试数组入参
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        Integer[] arrs = new Integer[]{1,2,3};
        List<Bill> billByProviderArray = sqlSession.getMapper(BillMapper.class).getBillByProviderIdArray(arrs);

        for (Bill bill : billByProviderArray){
            System.out.println(bill.getProviderId()+"\t"+bill.getProductName());
        }

        MybatisUtil.closeSqlsession(sqlSession);
    }

    @Test
    public void test2(){
        //测试list入参
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        list.add(3);
        List<Bill> billByProviderArray = sqlSession.getMapper(BillMapper.class).getBillByProviderIdList(list);

        for (Bill bill : billByProviderArray){
            System.out.println(bill.getProviderId()+"\t"+bill.getProductName());
        }

        MybatisUtil.closeSqlsession(sqlSession);
    }

}

练习2
1.数据访问层接口:ProviderMapper

package com.leisong.dao;

import com.leisong.domain.Provider;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface ProviderMapper {
    public int count();

    public List<?> getProviderAll();
    //模糊查询(供应商编码,供应商名称,供应商联系人,) 时间范围(在本年)
    public List<Provider> getProvider(@Param("proCode")String proCode, @Param("proName")String proName, @Param("proContact")String  proContact, @Param("stratDate") Date date1, @Param("overDate")Date date2);

}

2.ProviderMapper的映射文件:ProviderMapper.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.leisong.dao.ProviderMapper">
    <select id="count" resultType="Integer">
    select count(1) from smbms_provider
  </select>

    <select id="getProviderAll" resultType="com.leisong.domain.Provider">
        select * from smbms_provider;
    </select>
    <select id="getProvider" resultType="com.leisong.domain.Provider">
        SELECT * FROM smbms_provider WHERE 1=1
        <choose>
            <when test="proCode!=null">
                AND proCode like concat('%',#{proCode},'%')
            </when>
            <when test="proName != null">
                AND proName like concat('%',#{proName},'%')
            </when>
            <when test="proContact != null">
                and proContact like concat('%',#{proContact},'%')
            </when>
            <when test="startDate != null and overDate !=null  ">
                and creationDate between #{startDate} and #{overDate}
            </when>
            <otherwise>
                AND featured = 1
            </otherwise>
        </choose>
    </select>


</mapper>

3.测试

package com.leisong.test;

import com.leisong.dao.ProviderMapper;
import com.leisong.domain.Provider;
import com.leisong.util.MybatisUtil;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

public class TestProvider {
    @Test
    public void test(){
        String str = "mybatis_config.xml";
        SqlSession sqlSession = null;

        try {
            InputStream is = Resources.getResourceAsStream(str);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
            sqlSession = sqlSessionFactory.openSession();
            int  count = sqlSession.selectOne("com.leisong.dao.ProviderMapper.count");

            System.out.println("用户个数:"+count);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {

            if(sqlSession != null ){
                sqlSession.close();
            }
        }
    }
    @Test
    public void test2(){

        SqlSession sqlSession = MybatisUtil.getSqlSession();

        List<Provider> list = sqlSession.selectList("com.leisong.dao.ProviderMapper.getProviderAll");

        for(Provider p : list){
            System.out.println(p.toString());
        }
        MybatisUtil.closeSqlsession(sqlSession);
    }
    @Test
    public void test3(){
        SqlSession sqlSession = MybatisUtil.getSqlSession();

        Date startDate = null;
        Date overDate = null;
        try {
            startDate = new SimpleDateFormat("yyyy-MM-dd").parse("2020-02-022");

            overDate = new SimpleDateFormat("yyyy-MM-dd").parse("2020-07-22");

        } catch (ParseException e) {
            e.printStackTrace();
        }
        List<Provider> list = sqlSession.getMapper(ProviderMapper.class).getProvider("A", "深", "王",startDate,overDate);

        for (Provider p : list){
            System.out.println(p.toString());
        }
        MybatisUtil.closeSqlsession(sqlSession);
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值