mybatisplus执行原生sql
时间: 2023-05-03 22:07:51 浏览: 187
MyBatis-Plus是一款优秀的ORM框架,它提供了较为便捷的方法来执行SQL操作。在MyBatis-Plus中执行原生SQL有两种方式:
第一种方式是使用BaseMapper中的selectList()方法或者SqlSessionTemplate中的selectList()等方法,通过传递一个SQL语句或者SQL语句加上参数,即可执行原生SQL。但是,这种方式缺点很明显,容易被SQL注入攻击,因为没有对参数做出限定。
第二种方式是使用MyBatis-Plus提供的QueryWrapper或者UpdateWrapper等,这种方式可以有效的防止SQL注入。QueryWrapper中的like、eq等方法可以用来组装条件,UpdateWrapper中的set等方法可以用来设置需要更新的字段。当需要执行原生SQL时,可以使用QueryWrapper或者UpdateWrapper的getSqlSegment()方法来获取拼装好的SQL语句。同时,还可以使用SqlHelper中的execute方法来执行SQL语句。
总的来说,MyBatis-Plus提供了两种方式来执行原生SQL,但是要注意在执行时需要避免SQL注入攻击,尽量使用Wrapper中的方法来组装和执行SQL语句。
相关问题
mybatisplus原生save方法
MybatisPlus的原生save方法是指调用MybatisPlus提供的BaseMapper接口中的save方法,该方法用于向数据库中插入一条记录,具体用法如下:
```java
public interface BaseMapper<T> {
// 插入一条记录
int insert(T entity);
}
```
示例代码:
```java
User user = new User();
user.setName("Tom");
user.setAge(20);
user.setEmail("tom@example.com");
int result = userMapper.insert(user);
```
其中,userMapper是继承了BaseMapper的Mapper接口的实例,可以通过@Autowired注解进行注入。执行完insert方法后,result的值为1表示插入成功。如果插入失败,result的值为0。
需要注意的是,MybatisPlus的原生save方法只能插入一条记录,如果需要插入多条记录,需要使用批量插入的方式。此时,可以使用MybatisPlus提供的批量插入方法或者自定义SQL语句实现。
mybatisplus的savaOrUpdateBatch的原生sql是什么样的
mybatisplus的saveOrUpdateBatch方法会根据传入的实体列表,自动判断是执行保存操作还是更新操作。对于保存操作,会使用insert语句,对于更新操作,会使用update语句。
具体的原生SQL语句,会根据实体类的字段和表的映射关系生成。以下是一个示例:
```
INSERT INTO user (id, name, age) VALUES (?, ?, ?)
```
```
UPDATE user SET name = ?, age = ? WHERE id = ?
```
其中,?代表需要填充的参数。实际生成的SQL语句可能会根据不同的数据库厂商和配置而略有不同。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)