Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

楼主这个和prisma有什么不同,两个都不了解,求比较一下 #29

Closed
zwl1619 opened this issue Jun 6, 2018 · 2 comments
Closed

Comments

@zwl1619
Copy link

zwl1619 commented Jun 6, 2018

楼主这个和prisma有什么不同,两个都不了解,求比较一下:

https://github.com/prismagraphql/prisma

@TommyLemon
Copy link
Collaborator

TommyLemon commented Jun 6, 2018

Prisma是一个ORM库,用于实现SQL语句的封装。
需要后端针对每个需求都写封装SQL语句的代码哦
https://github.com/prismagraphql/prisma/blob/master/examples/application-server/generated-schema.graphql
查询:

type Query {
  posts(where: PostWhereInput, orderBy: PostOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Post]!
  users(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [User]!
  post(where: PostWhereUniqueInput!): Post
  user(where: UserWhereUniqueInput!): User
  postsConnection(where: PostWhereInput, orderBy: PostOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): PostConnection!
  usersConnection(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): UserConnection!

  """Fetches an object given its ID"""
  node(
    """The ID of an object"""
    id: ID!
  ): Node
}

增删改:

type Mutation {
  createPost(data: PostCreateInput!): Post!
  createUser(data: UserCreateInput!): User!
  updatePost(data: PostUpdateInput!, where: PostWhereUniqueInput!): Post
  updateUser(data: UserUpdateInput!, where: UserWhereUniqueInput!): User
  deletePost(where: PostWhereUniqueInput!): Post
  deleteUser(where: UserWhereUniqueInput!): User
  upsertPost(where: PostWhereUniqueInput!, create: PostCreateInput!, update: PostUpdateInput!): Post!
  upsertUser(where: UserWhereUniqueInput!, create: UserCreateInput!, update: UserUpdateInput!): User!
  updateManyPosts(data: PostUpdateInput!, where: PostWhereInput): BatchPayload!
  updateManyUsers(data: UserUpdateInput!, where: UserWhereInput): BatchPayload!
  deleteManyPosts(where: PostWhereInput): BatchPayload!
  deleteManyUsers(where: UserWhereInput): BatchPayload!
}

更新:
以上链接已失效,官方迁移了 examples,可以参考
https://github.com/prisma/prisma-examples/blob/master/node/docker-mysql/src/script.js
https://github.com/prisma/prisma-examples/blob/master/node/docker-mysql/src/generated/prisma-client/prisma-schema.js

而APIJSON是完全自动化生成SQL语句的,后端不需要写相关代码。
前端按照 设计规范 来请求,后端会完全自动解析成SQL语句去连接数据库执行,并返回和Request JSON结构完全对应的Response JSON
这是APISJONAuto接口在线工具,文档上给出的表和字段随便试,任何结构任何数据都支持。
http://apijson.org/auto

@TommyLemon
Copy link
Collaborator

@zwl1619 APIJSON Node 版本也出来了,语言一样,你可以具体对比下。
目前在初期阶段,用了 TypeORM,所以需要写 Model 类(Java 版不需要)。

apijson-node 支持单表、关联、数组、分页查询等,有比较完善的文档,
我测试过,除了项目提供的表有 utf8 编码问题导入不了 (用我自己的表测试可以),其它都可用。
作者是微医的,已经写了不少测试用例,在他公司内部用起来了。

点 Star 鼓励作者继续完善吧 ^_^
https://github.com/kevinaskin/apijson-node

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants