mybatis多個(gè)參數(shù)傳遞的方法是什么

小億
87
2024-01-02 11:16:47

在MyBatis中,有多種方法可以傳遞多個(gè)參數(shù):

  1. 使用Map或者@Param注解:可以將多個(gè)參數(shù)放入一個(gè)Map中,或者使用@Param注解為每個(gè)參數(shù)起一個(gè)名稱,然后在SQL語(yǔ)句中通過(guò)名稱引用參數(shù)。

例如,使用Map傳遞多個(gè)參數(shù):

Map<String, Object> params = new HashMap<>();
params.put("param1", value1);
params.put("param2", value2);
List<ResultType> result = sqlSession.selectList("namespace.statement", params);

或者使用@Param注解傳遞多個(gè)參數(shù):

List<ResultType> result = sqlSession.selectList("namespace.statement", @Param("param1") value1, @Param("param2") value2);

在SQL語(yǔ)句中,可以使用${param1}${param2}來(lái)引用參數(shù)。

  1. 使用POJO對(duì)象:可以將多個(gè)參數(shù)封裝成一個(gè)POJO對(duì)象,在SQL語(yǔ)句中直接引用POJO的屬性。

例如,定義一個(gè)POJO對(duì)象:

public class MyParams {
    private String param1;
    private String param2;
    // getters and setters
}

然后在SQL語(yǔ)句中引用POJO的屬性:

<select id="statement" parameterType="com.example.MyParams" resultType="com.example.ResultType">
    SELECT * FROM table WHERE column1 = #{param1} AND column2 = #{param2}
</select>

在調(diào)用時(shí),將多個(gè)參數(shù)封裝成POJO對(duì)象傳遞:

MyParams params = new MyParams();
params.setParam1(value1);
params.setParam2(value2);
List<ResultType> result = sqlSession.selectList("namespace.statement", params);

這些方法都可以實(shí)現(xiàn)多個(gè)參數(shù)的傳遞,根據(jù)實(shí)際場(chǎng)景選擇適合的方法即可。

0