前端全栈第一课:用typeorm向数据库添加数据

189 阅读2分钟

1.安装

npm install -g 

typeorm typeorm init --name typeorm-relation-mapping --database mysql

image.png 修改datasource文件

image.png datasource上的内容来源于 docker上创建一个运行容器

image.png 可视化观看mysql image.png

安装mysql的驱动包

npm install --save mysql2

启动项目

npm run start

进入mysql后你看到

image.png

数据来源于

image.png

2创建新的数据表

 typeorm entity:create src/entity/UserIdCard

image.png 表结构 image.png 加入datasource

image.png

运行

npm run start

image.png

3.如何让user和user-id-card表格相互链接

让user和user_id_card链接在一起,在myql客户端执行删除表格命令,然后通过typeorm重新创建表格。

drop table `typeorm_test`.user_id_card,`typeorm_test`.user;

image.png 在idCard里面链接user

image.png

执行npm run start看看变化

image.png

多了一列叫userId 此时他们还不是联机的,需要你设置一下

image.png

删除两个表

drop table `typeorm_test`.user_id_card,`typeorm_test`.user;

给两个表添加点数据

image.png 然后执行命令

npm run start

user表 image.png user-id-card表

image.png

我们发现user-id-card里面的user-id是user表里面的id,说明他们已经关联了。

4.将两个表的增删改都关联在一起

在entity里面配置

  @OneToOne(() => User, {
    cascade: true,
    onUpdate: 'CASCADE',
    onDelete: 'CASCADE'
  })

image.png

image.png 设置后,把index.ts里面的User表的保存删掉

image.png 说明关联成功

image.png

5.关联查询

正常搜索不关联的时候长这样,只查出来2项

image.png

设置参数

 {
    relations: {
      user: true
    }
  }

image.png

作为前端同学很多时候都会碰到这样的数据结构,它就是这么来的。

上面一直在说在user-id-card里面访问user,但是并没有说在user里面访问user-id-card,在user里面写入user-id-card

image.png

然后在index.ts里面

image.png

执行npm run start

image.png

每执行一次npm run start,就会创建一个typeorm对象,然后向数据库加一次数据。