mybatis 入門進階之 pojo


有時候我們dao方法聲明的入參需要是自定義的pojo,以滿足復雜的查詢條件。

IWebUserCustomDao.java

package com.mozi.dao;

import java.util.List;

import com.mozi.entity.WebUser;
import com.mozi.entity.WebUserCustom;

public interface IWebUserCustomDao {
    
    public List<WebUser> findUserList(WebUserCustom userQueryVo);
}

sqlmap\userCustomMapper.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">
<!-- namespace命名空間,作用就是對sql進行分類化的管理,理解為sql隔離
    注意:使用mapper代理開發時,namespace有特殊作用
 -->
<mapper namespace="com.mozi.dao.IWebUserCustomDao">
    

    <select id="findUserList" parameterType="com.mozi.entity.WebUserCustom" resultType="com.mozi.entity.WebUser" >
        select * from WebUsers
        <where>
            <if test ="enable!=null">
                Enable = #{enable}
            </if>
            <if test ="enable==null">
                Enable is NULL
            </if>
        </where> 
    </select>
    
</mapper>

同事statment中用到了動態sql : where ,if 。

測試類WebUserCustomDaoImplTest.java

package com.mozi.test.java;

import static org.junit.Assert.*;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

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 com.mozi.dao.IWebUserCustomDao;
import com.mozi.dao.IWebUserDao;
import com.mozi.dao.impl.WebUserDaoMybatis3;
import com.mozi.entity.WebUser;
import com.mozi.entity.WebUserCustom;

public class WebUserCustomDaoImplTest {
    
    private static SqlSessionFactory sqlSessionFactory = null;
    
    static{
        String resource = "SqlMapConfig.xml";
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }
    
    @Test
    public void findUserListTest() {
        SqlSession sqlSession=null;
        
        sqlSession=sqlSessionFactory.openSession();
        
        //生成代理類
        IWebUserCustomDao userMapper=sqlSession.getMapper(IWebUserCustomDao.class);
       //創建包裝對象,設置查詢條件
        WebUserCustom userCustom=new WebUserCustom();
        userCustom.setEnable(true);
        
        List<WebUser> list =  userMapper.findUserList(userCustom);
        System.out.println(list);
        
        sqlSession.close();
        
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM