typeorm使用原生sql
时间: 2024-04-12 10:23:02 浏览: 21
TypeORM是一个用于Node.js和浏览器的ORM(对象关系映射)框架,它支持多种数据库,包括MySQL、PostgreSQL、SQLite、Microsoft SQL Server等。TypeORM提供了使用原生SQL的灵活性,可以直接执行原生SQL查询。
要使用TypeORM执行原生SQL查询,可以使用EntityManager或Repository对象的query方法。下面是一个示例:
```typescript
import { getConnection } from "typeorm";
// 使用EntityManager执行原生SQL查询
const entityManager = getConnection().manager;
const result = await entityManager.query("SELECT * FROM users");
// 使用Repository执行原生SQL查询
const userRepository = getConnection().getRepository(User);
const result = await userRepository.query("SELECT * FROM users");
```
在上面的示例中,我们通过getConnection方法获取到数据库连接,并使用manager或getRepository方法获取到EntityManager或Repository对象。然后,我们可以使用query方法执行原生SQL查询。
需要注意的是,TypeORM还提供了参数化查询的功能,可以防止SQL注入攻击。可以使用占位符(?)或命名参数(:name)来代替实际的参数值。下面是一个使用参数化查询的示例:
```typescript
import { getConnection } from "typeorm";
const entityManager = getConnection().manager;
const name = "John Doe";
const age = 25;
const result = await entityManager.query("SELECT * FROM users WHERE name = ? AND age > :age", [name, { age }]);
```
在上面的示例中,我们使用占位符(?)和命名参数(:age)来代替实际的参数值,并将参数值作为数组传递给query方法。