MyBatis-Plus 是一個 MyBatis 的增強工具,用于簡化 MyBatis 的開發。它提供了一些內置的方法和功能,可以幫助你更輕松地編寫和執行 SQL 語句。以下是一些使用 MyBatis-Plus 拼接 SQL 語句的示例:
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.example.demo.entity.User;
// ...
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getAge, 25)
.like(User::getName, "張%")
.orderByDesc(User::getCreateTime);
List<User> userList = userMapper.selectList(queryWrapper);
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.demo.entity.User;
// ...
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 25)
.like("name", "張%")
.orderByDesc("create_time");
List<User> userList = userMapper.selectList(queryWrapper);
在 resources/mapper
目錄下創建一個名為 UserMapper.xml
的文件,然后編寫如下 SQL 語句:
<?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.example.demo.mapper.UserMapper">
<select id="selectUsersByNameAndAge" resultType="com.example.demo.entity.User">
SELECT * FROM user
WHERE name LIKE #{name}
AND age = #{age}
ORDER BY create_time DESC
</select>
</mapper>
然后在 UserMapper
接口中添加對應的方法:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
public interface UserMapper extends BaseMapper<User> {
List<User> selectUsersByNameAndAge(@Param("name") String name, @Param("age") Integer age);
}
最后在服務類中調用該方法:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> getUsersByNameAndAge(String name, Integer age) {
return userMapper.selectUsersByNameAndAge(name, age);
}
}
這樣,你就可以使用 MyBatis-Plus 拼接 SQL 語句并執行了。注意根據實際情況調整代碼中的包名、類名和字段名。