MyBatis系统学习 - 使用Mybatis完成查询单条,多条数据,模糊查询,动态设置表名,获取自增主键
在MyBatis中,你可以通过XML映射文件或注解的方式来定义SQL语句,以下是实现单条数据查询、多条数据查询、模糊查询以及动态设置表名的例子:
- 单条数据查询:
<select id="selectById" parameterType="int" resultType="YourModelClass">
SELECT * FROM your_table WHERE id = #{id}
</select>
- 多条数据查询:
<select id="selectByIds" parameterType="list" resultType="YourModelClass">
SELECT * FROM your_table WHERE id IN
<foreach item="id" collection="list" open="(" separator="," close=")">
#{id}
</foreach>
</select>
- 模糊查询:
<select id="selectByName" parameterType="string" resultType="YourModelClass">
SELECT * FROM your_table WHERE name LIKE CONCAT('%', #{name}, '%')
</select>
- 动态设置表名:
<select id="selectByCondition" parameterType="map" resultType="YourModelClass">
SELECT * FROM ${tableName} WHERE some_column = #{someValue}
</select>
在调用Mapper接口时,你可以传递相应的参数,例如:
// 单条数据查询
YourModelClass result = yourMapper.selectById(1);
// 多条数据查询
List<Integer> ids = Arrays.asList(1, 2, 3);
List<YourModelClass> results = yourMapper.selectByIds(ids);
// 模糊查询
List<YourModelClass> results = yourMapper.selectByName("John");
// 动态设置表名
Map<String, Object> params = new HashMap<>();
params.put("tableName", "your_table");
params.put("someValue", "some_condition");
List<YourModelClass> results = yourMapper.selectByCondition(params);
确保在动态设置表名时,传入的表名是可控且安全的,避免SQL注入风险。
评论已关闭