cool-admin node 框架实现执行sql 语句

1.需求

cool-admin 框架中 正常时有一套封装的sql 操作方法 是封装好的

但是有的时候我需要用到mysql 数据操作 语句 select * from 。。。。  这样的语句 cool-damin 也是可以支持的

1.普通sql查询

import { DemoGoodsEntity } from "./../entity/goods";
import { Provide } from "@midwayjs/decorator";
import { BaseService } from "@cool-midway/core";
import { InjectEntityModel } from "@midwayjs/typeorm";
import { Repository } from "typeorm";

/**
 * 商品示例
 */
@Provide()
export class DemoGoodsService extends BaseService {
	@InjectEntityModel(DemoGoodsEntity)
	demoGoodsEntity: Repository<DemoGoodsEntity>;

	/**
	 * 执行sql
	 */
	async sql(query) {
		return this.nativeQuery("select * from demo_goods a where a.id = ?", [query.id]);
	}
}
2.分页 SQL 查询

import { DemoGoodsEntity } from "./../entity/goods";
import { Provide } from "@midwayjs/decorator";
import { BaseService } from "@cool-midway/core";
import { InjectEntityModel } from "@midwayjs/typeorm";
import { Repository } from "typeorm";

/**
 * 商品示例
 */
@Provide()
export class DemoGoodsService extends BaseService {
	@InjectEntityModel(DemoGoodsEntity)
	demoGoodsEntity: Repository<DemoGoodsEntity>;

	/**
	 * 执行分页sql
	 */
	async sqlPage(query) {
		return this.sqlRenderPage("select * from demo_goods ORDER BY id ASC", query, false);
	}
}
3.非 SQL 的分页查询

import { DemoGoodsEntity } from "./../entity/goods";
import { Provide } from "@midwayjs/decorator";
import { BaseService } from "@cool-midway/core";
import { InjectEntityModel } from "@midwayjs/typeorm";
import { In, Repository } from "typeorm";

/**
 * 商品示例
 */
@Provide()
export class DemoGoodsService extends BaseService {
	@InjectEntityModel(DemoGoodsEntity)
	demoGoodsEntity: Repository<DemoGoodsEntity>;

	/**
	 * 执行entity分页
	 */
	async entityPage(query) {
		const find = this.demoGoodsEntity.createQueryBuilder();
		find.where("id = :id", { id: 1 });
		return this.entityRenderPage(find, query);
	}
}
4.SQL 动态条件
import { DemoGoodsEntity } from "./../entity/goods";
import { Provide } from "@midwayjs/decorator";
import { BaseService } from "@cool-midway/core";
import { InjectEntityModel } from "@midwayjs/typeorm";
import { Repository } from "typeorm";

/**
 * 商品示例
 */
@Provide()
export class DemoGoodsService extends BaseService {
	@InjectEntityModel(DemoGoodsEntity)
	demoGoodsEntity: Repository<DemoGoodsEntity>;

	/**
	 * 执行sql
	 */
	async sql(query) {
		return this.nativeQuery(`
    select * from demo_goods a
      WHERE 1=1
      ${this.setSql(query.id, "and a.id = ?", [query.id])}
    ORDER BY id ASC
    `);
	}
}

2.实践

可以的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值