1. 程式人生 > >Mybatis 執行傳入的sql語句

Mybatis 執行傳入的sql語句

在專案開發中,需要根據具體業務邏輯動態拼接sql語句,那麼我們可以將動態拼接好的sql語句傳入mybatis中,這樣便能最大限度將sql掌握在自己手裡。

1.構造實體類(此處省略get、set方法)

package com.dnf.entity;

public class Staff {
    private long id;
    private String userName;
    private String password;
}

2.構造介面類

package com.dnf.dao;

import java.util.List;

import com.dnf.entity.Staff;

/**
 * @author
Marco * */
public interface StaffDao { List<Staff> query4staff(String sql); }

3.配置mapper檔案

<?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.dnf.dao.StaffDao"
>
<!-- 目的:為dao介面方法提供sql語句配置 --> <select id="query4staff" parameterType="String" resultType="Staff"> ${value} </select> </mapper>

以上三步配置好了對應的檔案,下面進行測試

1.建立Base測試類將spring和junit整合

package com.dnf;

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * 配置spring和junit整合,junit啟動時載入springIOC容器 spring-test,junit */ @RunWith(SpringJUnit4ClassRunner.class) // 告訴junit spring配置檔案 @ContextConfiguration({ "classpath:spring/spring-dao.xml", "classpath:spring/spring-service.xml" }) public class BaseTest { }

2.建立StaffTest的測試類

package com.dnf.dao;

import java.util.List;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import com.dnf.BaseTest;
import com.dnf.entity.Staff;

public class StaffTest extends BaseTest{

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    private StaffDao dao;   

    @Test
    public void query4staff(){
        String sql = "SELECT id,user_name,password FROM staffs";
        List<Staff> list = dao.query4staff(sql);
        for(Staff staff : list){
            logger.info(staff.toString());
        }
    }

}

執行junit測試
這裡寫圖片描述

至此,配置完成。