mybatis plus 直接写sql 执行
时间: 2023-07-18 13:26:35 浏览: 66
MyBatis-Plus 提供了两种方式直接执行 SQL:
1. 使用 `SqlRunner` 类
`SqlRunner` 是 MyBatis-Plus 提供的一个 SQL 执行工具类,可以直接执行 SQL 语句。示例如下:
```java
SqlRunner sqlRunner = new SqlRunner(dataSource);
List<Map<String, Object>> result = sqlRunner.selectList("SELECT * FROM user");
```
2. 使用 `JdbcTemplate` 类
`JdbcTemplate` 是 Spring 框架提供的一个 JDBC 工具类,也可以直接执行 SQL 语句。在使用之前需要将其注入到 Spring 容器中。示例如下:
```java
@Autowired
private JdbcTemplate jdbcTemplate;
public List<Map<String, Object>> getUserList() {
List<Map<String, Object>> result = jdbcTemplate.queryForList("SELECT * FROM user");
return result;
}
```
以上两种方式都可以直接执行 SQL 语句,但是建议在使用 MyBatis-Plus 时,尽量使用 MyBatis-Plus 提供的 CRUD 方法,这样可以更方便、更灵活地操作数据库。
相关问题
MyBatis Plus不写sql
MyBatis Plus提供了很多方便的API,可以不用编写SQL语句,从而提高开发效率。下面是一些示例:
1. 通用Mapper接口
MyBatis Plus提供了通用的Mapper接口,不需要编写SQL语句即可进行常见的CRUD操作。例如:
```
public interface UserMapper extends BaseMapper<User> {
}
```
这样就可以直接使用UserMapper的方法进行增删改查操作,无需编写SQL语句。
2. 条件构造器
MyBatis Plus提供了条件构造器,方便我们构造复杂的查询条件。例如:
```
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("age", 18).like("name", "张");
List<User> userList = userMapper.selectList(wrapper);
```
这段代码就相当于SELECT * FROM user WHERE age = 18 AND name LIKE '%张%'。
3. 分页插件
MyBatis Plus提供了分页插件,可以方便地进行分页查询。例如:
```
IPage<User> page = new Page<>(1, 10);
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("age", 18);
IPage<User> userPage = userMapper.selectPage(page, wrapper);
List<User> userList = userPage.getRecords();
```
这段代码就可以查询出年龄为18岁的用户列表,并进行分页。
总之,MyBatis Plus提供了很多方便的API,可以大大减少我们的开发工作量,提高开发效率。
mybatis-plus中手写sql
在MyBatis-Plus中,可以通过`@Select`注解或者`Mapper`的方式来手写SQL。下面是两种方式的示例:
1. 使用`@Select`注解手写SQL:
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
@Select("SELECT * FROM user WHERE age > #{age}")
List<User> selectUsersByAge(@Param("age") int age);
}
```
2. 在Mapper接口中手写SQL:
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
List<User> selectUsersByAge(@Param("age") int age);
}
```
在XML文件中编写SQL:
```xml
<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectUsersByAge" resultType="com.example.entity.User">
SELECT * FROM user WHERE age > #{age}
</select>
</mapper>
```
使用时,可以直接调用该方法执行手写的SQL。