PostgreSQL数据库——Docker版本的postgres安装 & Navicat连接方式+导入向 ...

打印 上一主题 下一主题

主题 827|帖子 827|积分 2481

引出


1.PostgreSQL数据库初始,开源;
2.Docker版本的postgres安装,以及挂载启动;
3.Navicat连接方式+导入向导使用,导入csv文件;
4.SpringBoot联合Jpa使用PostgreSQL初步;
postgres数据库

PostgreSQL是一种开源的关系型数据库管理系统(RDBMS),它是一种高度可扩展的、可靠的、功能丰富的数据库系统。以下是关于PostgreSQL的一些介绍:
开源性:PostgreSQL是一个开源项目,可以免费使用和修改。它的源代码可以被任何人查看、修改和贡献。
关系型数据库:PostgreSQL是一种关系型数据库,它使用表格来存储和构造数据。它支持SQL查询语言,可以举行复杂的数据操作和查询。
可扩展性:PostgreSQL具有良好的可扩展性,可以处置惩罚大量的数据和高并发访问。它支持水平扩展和垂直扩展,可以通过添加更多的服务器节点或增长硬件资源来提高性能。
可靠性:PostgreSQL具有高度可靠性和数据完整性。它支持事务处置惩罚和ACID(原子性、一致性、隔离性和持久性)特性,可以确保数据的一致性和可靠性。
功能丰富:PostgreSQL提供了许多高级功能,如复杂查询、索引、触发器、视图、存储过程、外键约束等。它还支持全文搜刮、地理空间数据处置惩罚、JSON数据类型等先辈的功能。
跨平台性:PostgreSQL可以在多种操作系统上运行,包罗Windows、Linux、Mac OS等。

Docker版本的postgres安装

   docker search postgres
  

   docker pull postgres
  

运行创建容器

  1. docker run -it \
  2. --name postgres \
  3. --privileged \
  4. -e POSTGRES_PASSWORD=123 \
  5. -p 5432:5432 \
  6. -v /usr/local/software/postgres/data:/var/lib/postgresql/data \
  7. -d postgres
复制代码
  1. docker run --name postgres -e POSTGRES_PASSWORD=Abc1234% -p 5432:5432 -v /home/zx/postgres/data:/var/lib/postgresql/data -d postgres
复制代码


  • –name postgres:指定容器的名称;
  • -e POSTGRES_PASSWORD=Abc1234%:设置环境变量,这里为设定PostgreSQL数据库的暗码;
  • -p 5432:5432:指定端口映射,前者为宿主机访问端口,后者为容器内端口。假如不指定端口映射,只有在容器内可以访问数据库,外部是无法访问的;
  • -v /home/zx/postgres/data:/var/lib/postgresql/data:v是volume的简写,即绑定一个卷,冒号前的路径为宿主机的路径(假如指定路径不存在会自动创建目录),冒号后为容器内路径。容器会把宿主机的目录映射到容器内的路径,这样容器运行中生成的数据实际上就是写到了宿主机的指定路径上,纵然容器删除了,此路径的文件也不会删除,这样就做到了数据库的持久化存储。还可以通过docker volume提供的相干下令显式地创建volume,然后再挂载到容器上,这里不做介绍,请自行查询相干内容;
  • -d:表示配景运行容器;
  • postgres:表示镜像的名称,docker基于上步拉取的镜像创建出容器;

查看日志
   docker logs postgres
  

容器内连接数据库
  1. docker exec -it postgres /bin/bash
复制代码


  • exec:在容器中运行下令
  • postgres:为容器名称
  • -it:表示在当前终端为容器分配一个伪终端
  • /bin/bash:容器内运行/bin/bash终端

  1. [root@localhost data]# docker exec -it postgres bash
  2. root@3283f4dbe299:/# su postgres
  3. postgres@3283f4dbe299:/$ psql
  4. psql (14.1 (Debian 14.1-1.pgdg110+1))
  5. Type "help" for help.
  6. postgres=# \l
  7.                                  List of databases
  8.    Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   
  9. -----------+----------+----------+------------+------------+-----------------------
  10. postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 |
  11. template0 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
  12.            |          |          |            |            | postgres=CTc/postgres
  13. template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
  14.            |          |          |            |            | postgres=CTc/postgres
  15. (3 rows)
  16. postgres=#
复制代码
Navicat连接数据库

   创建连接
  


新建数据库


   编码方式UTF-8
  

新建模式


   输入模式名
  

导入向导


   选择csv文件
  



LF (Line Feed):换行符,’\n’,表示切换到下一行,ASCII码为10
CR (Carriage Return):回车符,’\r’,表示回到当前行的开头,ASCII码为13
CRLF:一个回车符和一个换行符,“\r\n”


  • Windows系统 使用 CRLF 举行换行
  • Unix系统 及 类Unix系统 采用 LF 举行换行
   关于分隔符
  

   日期排序方式
  

   支持修改表名
  

   选择字段,修改导入后字段名字
  

   导入模式
  

   开始导入
  


SpringBoot联合Jpa使用postgres初步


导入依赖

  1. <!--        Jpa的包-->
  2.         <dependency>
  3.             <groupId>org.springframework.boot</groupId>
  4.             <artifactId>spring-boot-starter-data-jpa</artifactId>
  5.         </dependency>
  6. <!--        postgresql数据库-->
  7.         <dependency>
  8.             <groupId>org.postgresql</groupId>
  9.             <artifactId>postgresql</artifactId>
  10.             <scope>runtime</scope>
  11.         </dependency>
复制代码
创建实体类

javax


  • @Entity
    @Table

    • @Id
    • @GeneratedValue(strategy) AUTO/IDENTITY(数据库自己的主键自增长计谋???)
    • @Column

   GenerationType.AUTO:会多一张表,记录键
GenerationType.IDENTITY:用数据库自增的主键
@GeneratedValue(strategy = GenerationType.IDENTITY) // 用数据库自增长计谋
  

  1. package com.tianju.book.jpa;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import javax.persistence.*;
  6. @Data
  7. @NoArgsConstructor
  8. @AllArgsConstructor
  9. // 表示这个实体类是和数据库表对应的
  10. @Entity
  11. @Table(name = "identity_card") // 对应的表名
  12. public class Identity {
  13.     @Id // 是主键
  14.     // GenerationType.AUTO:会多一张表,记录键
  15.     // GenerationType.IDENTITY:用数据库自增的主键
  16.     @GeneratedValue(strategy = GenerationType.IDENTITY) // 用数据库自增长策略
  17.     @Column(name = "id")
  18.     private String id;
  19.     @Column(name = "distinct")
  20.     private String distinct;
  21. }
复制代码
dao根据地区模糊查询

   JpaRepository<Identity,String>:实体类以及主键的类型
  

  1. package com.tianju.book.jpa;
  2. import org.springframework.data.jpa.repository.JpaRepository;
  3. import org.springframework.stereotype.Repository;
  4. import java.util.List;
  5. /**
  6. * JpaRepository<Identity,String>:实体类以及主键的类型
  7. */
  8. @Repository
  9. public interface IdentityDao extends JpaRepository<Identity,String> {
  10.     List<Identity> findByDistinctLike(String distinct);
  11. }
复制代码
设置类

在jpa中,ddl-auto共分为四种:
spring.jpa.hibernate.ddl-auto = create ----每次启动SpringBoot步伐时,没有表会新建表格,表内有数据会清空;
spring.jpa.hibernate.ddl-auto = create-drop ----每次启动SpringBoot步伐时,会清空表数据;
spring.jpa.hibernate.ddl-auto = update ---- 每次启动SpringBoot步伐时,没有表格会新建表格,表内有数据不会清空,只会更新;
spring.jpa.hibernate.ddl-auto = validate ---- 每次启动SpringBoot步伐时,会校验实体类字段与数据库字段的类型是否相同,不同则会报错;

  1. server:
  2.   port: 9099
  3. spring:
  4.   datasource:
  5.     driver-class-name: org.postgresql.Driver
  6.     url: jdbc:postgresql://192.168.111.130:5432/test-db?useSSL=false
  7.     username: postgres
  8.     password: 123
  9.   jpa:
  10.     # 允许显示sql
  11.     show-sql: true
  12.     hibernate:
  13.       # 自动对表进行增删改查的操作,创建表
  14.       # 可以开始的时候打开,等表创建好之后关闭
  15.       ddl-auto: validate
复制代码
使用其他模式


在Spring Boot的application.yml文件中,可以使用以下方式指定连接PostgreSQL数据库中的模式:
  1. spring:
  2.   datasource:
  3.     url: jdbc:postgresql://localhost:5432/database_name?currentSchema=schema_name
  4.     username: your_username
  5.     password: your_password
复制代码
在上述设置中,database_name是要连接的数据库名称,schema_name是要使用的模式名称。通过在URL中添加currentSchema=schema_name参数,可以指定要使用的模式。
另外,假如要在代码中指定模式,可以使用spring.jpa.properties.hibernate.default_schema属性,如下所示:
  1. spring:
  2.   jpa:
  3.     properties:
  4.       hibernate:
  5.         default_schema: schema_name
复制代码
这样,Hibernate将使用指定的模式来创建和查询数据库对象。
举行测试


  1. package com.tianju.book.mapper;
  2. import com.tianju.book.jpa.Identity;
  3. import com.tianju.book.jpa.IdentityDao;
  4. import org.junit.Test;
  5. import org.junit.runner.RunWith;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.boot.test.context.SpringBootTest;
  8. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  9. import java.util.List;
  10. @SpringBootTest
  11. @RunWith(SpringJUnit4ClassRunner.class)
  12. public class JpaDemoTest {
  13.     @Autowired
  14.     private IdentityDao identityDao;
  15.     @Test
  16.     public void findByDistinctLike(){
  17.         List<Identity> distinctLike = identityDao.findByDistinctLike("北京%");
  18.         distinctLike.forEach(identity->{
  19.             System.out.println(identity);
  20.         });
  21.     }
  22. }
复制代码

总结

1.PostgreSQL数据库初始,开源;
2.Docker版本的postgres安装,以及挂载启动;
3.Navicat连接方式+导入向导使用,导入csv文件;
4.SpringBoot联合Jpa使用PostgreSQL初步;

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊雷无声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表