迷茫、Peanut 2023-10-04 09:45 采纳率: 96.6%
浏览 20
已结题

mybatis遇到问题了

img


为什么这些会报错

img


还有这里

img


这是java写测试方法的


package cn.smbms.dao.user;  
  
import java.util.List;    
  


import org.apache.ibatis.annotations.Param;

import cn.smbms.pojo.Provider;  
  
public interface ProviderMapper 
{

 public int count();
 public int modify(Provider provider);
 public List<Provider> getProviderList(@Param("proName") String providerName);
 public List<Provider> getBillProvidersPage(@Param("billProviderName") String billProviderName,
                                            @Param("from")Integer currentPageNo, @Param("limit") int limit);
}
```java
package cn.smbms.dao.user;

import static org.junit.Assert.*;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import org.junit.Before;
import org.junit.Test;

import cn.smbms.pojo.Address;
import cn.smbms.pojo.Provider;
import cn.smbms.pojo.User;
import cn.smbms.utils.MyBatisUtil;

public class ProviderMapperTest {  
    
    private Logger logger = Logger.getLogger(ProviderMapperTest.class);  
      
    @Before  
    public void setUp() throws Exception {  
    }  
  
    @Test  
    public void testCount() {  
        SqlSession sqlSession = null;  
        int count = 0;  
        try {  
            sqlSession = MyBatisUtil.createSqlSession();
            count = sqlSession.getMapper(ProviderMapper.class).count();  
              
        } catch (Exception e) {  
            // TODO: handle exception  
            e.printStackTrace();  
        }finally{  
            MyBatisUtil.closeSqlSession(sqlSession);  
        }  
          
        logger.debug("ProviderMapperTest count---> " + count);  
    }  
      
    @Test  
    public void testGetProviderList(){  
        SqlSession sqlSession = null;  
        List<Provider> providerList = new ArrayList<Provider>();  
        try {  
            sqlSession = MyBatisUtil.createSqlSession();  
            String providerName = "";  
            
            providerList = sqlSession.getMapper(ProviderMapper.class).getProviderList(providerName);  
        } catch (Exception e) {  
            // TODO: handle exception  
            e.printStackTrace();  
        }finally{  
            MyBatisUtil.closeSqlSession(sqlSession);  
        }  
        logger.debug("providerlist.size ----> " + providerList.size());  
        for(Provider provider: providerList){    
            logger.debug("testGetProviderList=======> id: " + provider.getId() +    
                        ", proCode: " + provider.getProCode() +     
                        ", proName: " + provider.getProName() +     
                        ", proDesc: " + provider.getProDesc() +     
                        ", proContact: " + provider.getProContact() +     
                        ", proPhone: " + provider.getProPhone() +     
                        ", proAddress: " + provider.getProAddress() +     
                        ", proFax: " + provider.getProFax() +     
                        ", createdBy: " + provider.getCreatedBy() +     
                        ", creationDate: " + provider.getCreationDate() +     
                        ", modifyDate: " + provider.getModifyDate() +     
                        ", modifyBy: " + provider.getModifyBy());   
        }
    }  
}
这是测试类

```java这是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="cn.smbms.dao.user.ProviderMapper">

    <!-- 查询用户表记录数 -->
    <select id="count" resultType="int">
        select count(1) as count from smbms_provider
    </select>

    <!-- 当数据库中的字段信息与对象的属性不一致时需要通过resultMap来映射 -->
    <resultMap type="Provider" id="providerResultMap">
        <result property="id" column="id"/>
        <result property="proCode" column="proCode"/>
        <result property="proName" column="proName"/>
        <result property="proDesc" column="proDesc"/>
        <result property="proContact" column="proContact"/>
        <result property="proPhone" column="proPhone"/>
        <result property="proAddress" column="proAddress"/>
        <result property="proFax" column="proFax"/>
        <result property="createdBy" column="createdBy"/>
        <result property="creationDate" column="creationDate"/>
        <result property="modifyDate" column="modifyDate"/>
        <result property="modifyBy" column="modifyBy"/>
    </resultMap>


<!--    下面用if+trim实现与if set同样的更新效果-->
    <update id="modifyProvider" parameterType="Provider">
        update provider
        <set>
            <if test="id != null">id=#{id},</if>
            <if test="proCode != null">proCode=#{proCode},</if>
            <if test="proName != null">proName=#{proName},</if>
            <if test="proDesc != null">proDesc=#{proDesc},</if>
            <if test="proContact != null">proContact=#{proContact},</if>
            <if test="proPhone != null">proPhone=#{proPhone},</if>
            <if test="proAddress != null">proAddress=#{proAddress},</if>
            <if test="proFax != null">proFax=#{proFax},</if>
            <if test="createdBy != null">createdBy=#{createdBy},</if>
            <if test="creationDate != null">creationDate=#{creationDate},</if>
            <if test="modifyDate != null">modifyDate=#{modifyDate},</if>
            <if test="modifyBy != null">modifyBy=#{modifyBy}</if>
        </set>
        where id = #{id}
    </update>

<!--    <update id="modifyProvider" parameterType="Provider">-->
<!--        update provider-->
<!--        <set>-->
<!--            <trim suffixOverrides=",">-->
<!--                <if test="id != null">id=#{id},</if>-->
<!--                <if test="proCode != null">proCode=#{proCode},</if>-->
<!--                <if test="proName != null">proName=#{proName},</if>-->
<!--                <if test="proDesc != null">proDesc=#{proDesc},</if>-->
<!--                <if test="proContact != null">proContact=#{proContact},</if>-->
<!--                <if test="proPhone != null">proPhone=#{proPhone},</if>-->
<!--                <if test="proAddress != null">proAddress=#{proAddress},</if>-->
<!--                <if test="proFax != null">proFax=#{proFax},</if>-->
<!--                <if test="createdBy != null">createdBy=#{createdBy},</if>-->
<!--                <if test="creationDate != null">creationDate=#{creationDate},</if>-->
<!--                <if test="modifyDate != null">modifyDate=#{modifyDate},</if>-->
<!--                <if test="modifyBy != null">modifyBy=#{modifyBy}</if>-->
<!--            </trim>-->
<!--        </set>-->
<!--        where id = #{id}-->
<!--    </update>-->



    <!-- 下面使用where和if标签改写对provider表的查询bill表 -->
    <select id="getBillProviders" resultType="Provider">
        SELECT * FROM provider
        <where>
            <if test="billProviderName != null">
                AND name = #{billProviderName}
            </if>
        </where>
    </select>


<!--    下面是根据bill表进行分页-->
    <select id="getBillProvidersPage" resultType="Provider">
        SELECT * FROM provider
        <where>
            <if test="billProviderName != null">
                AND name = #{billProviderName}
            </if>
        </where>
        LIMIT #{from}, #{limit}
    </select>



</mapper>

  • 写回答

2条回答 默认 最新

  • 嘟噜噜嘟嘟嘟 2023-10-10 08:58
    关注

    麻烦把mapper的java文件要截图发一下呢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月18日
  • 已采纳回答 10月10日
  • 创建了问题 10月4日