1.PostgreSQL数据库初始,开源;
2.Docker版本的postgres安装,以及挂载启动;
3.Navicat连接方式+导入向导使用,导入csv文件;
4.SpringBoot结合Jpa使用PostgreSQL初步;
PostgreSQL是一种开源的关系型数据库管理系统(RDBMS),它是一种高度可扩展的、可靠的、功能丰富的数据库系统。以下是关于PostgreSQL的一些介绍:
开源性:PostgreSQL是一个开源项目,可以免费使用和修改。它的源代码可以被任何人查看、修改和贡献。
关系型数据库:PostgreSQL是一种关系型数据库,它使用表格来存储和组织数据。它支持SQL查询语言,可以进行复杂的数据操作和查询。
可扩展性:PostgreSQL具有良好的可扩展性,可以处理大量的数据和高并发访问。它支持水平扩展和垂直扩展,可以通过添加更多的服务器节点或增加硬件资源来提高性能。
可靠性:PostgreSQL具有高度可靠性和数据完整性。它支持事务处理和ACID(原子性、一致性、隔离性和持久性)特性,可以确保数据的一致性和可靠性。
功能丰富:PostgreSQL提供了许多高级功能,如复杂查询、索引、触发器、视图、存储过程、外键约束等。它还支持全文搜索、地理空间数据处理、JSON数据类型等先进的功能。
跨平台性:PostgreSQL可以在多种操作系统上运行,包括Windows、Linux、Mac OS等。
docker search postgres
docker pull postgres
docker run -it \ --name postgres \ --privileged \ -e POSTGRES_PASSWORD=123 \ -p 5432:5432 \ -v /usr/local/software/postgres/data:/var/lib/postgresql/data \ -d postgres
docker run --name postgres -e POSTGRES_PASSWORD=Abc1234% -p 5432:5432 -v /home/zx/postgres/data:/var/lib/postgresql/data -d postgres
查看日志
docker logs postgres
容器内连接数据库
docker exec -it postgres /bin/bash
[root@localhost data]# docker exec -it postgres bash root@3283f4dbe299:/# su postgres postgres@3283f4dbe299:/$ psql psql (14.1 (Debian 14.1-1.pgdg110+1)) Type "help" for help. postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+------------+------------+----------------------- postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 | template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres + | | | | | postgres=CTc/postgres (3 rows) postgres=#
创建连接
编码方式UTF-8
输入模式名
选择csv文件
LF (Line Feed):换行符,’\n’,表示切换到下一行,ASCII码为10
CR (Carriage Return):回车符,’\r’,表示回到当前行的开头,ASCII码为13
CRLF:一个回车符和一个换行符,“\r\n”
关于分隔符
日期排序方式
支持修改表名
选择字段,修改导入后字段名字
导入模式
开始导入
org.springframework.boot spring-boot-starter-data-jpa org.postgresql postgresql runtime
javax
@Entity
@Table
GenerationType.AUTO:会多一张表,记录键
GenerationType.IDENTITY:用数据库自增的主键
@GeneratedValue(strategy = GenerationType.IDENTITY) // 用数据库自增长策略
package com.tianju.book.jpa; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import javax.persistence.*; @Data @NoArgsConstructor @AllArgsConstructor // 表示这个实体类是和数据库表对应的 @Entity @Table(name = "identity_card") // 对应的表名 public class Identity { @Id // 是主键 // GenerationType.AUTO:会多一张表,记录键 // GenerationType.IDENTITY:用数据库自增的主键 @GeneratedValue(strategy = GenerationType.IDENTITY) // 用数据库自增长策略 @Column(name = "id") private String id; @Column(name = "distinct") private String distinct; }
JpaRepository
:实体类以及主键的类型
package com.tianju.book.jpa; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import java.util.List; /** * JpaRepository:实体类以及主键的类型 */ @Repository public interface IdentityDao extends JpaRepository { List findByDistinctLike(String distinct); }
在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程序时,会校验实体类字段与数据库字段的类型是否相同,不同则会报错;
server: port: 9099 spring: datasource: driver-class-name: org.postgresql.Driver url: jdbc:postgresql://192.168.111.130:5432/test-db?useSSL=false username: postgres password: 123 jpa: # 允许显示sql show-sql: true hibernate: # 自动对表进行增删改查的操作,创建表 # 可以开始的时候打开,等表创建好之后关闭 ddl-auto: validate
在Spring Boot的application.yml文件中,可以使用以下方式指定连接PostgreSQL数据库中的模式:
spring: datasource: url: jdbc:postgresql://localhost:5432/database_name?currentSchema=schema_name username: your_username password: your_password
在上述配置中,database_name是要连接的数据库名称,schema_name是要使用的模式名称。通过在URL中添加currentSchema=schema_name参数,可以指定要使用的模式。
另外,如果要在代码中指定模式,可以使用spring.jpa.properties.hibernate.default_schema属性,如下所示:
spring: jpa: properties: hibernate: default_schema: schema_name
这样,Hibernate将使用指定的模式来创建和查询数据库对象。
package com.tianju.book.mapper; import com.tianju.book.jpa.Identity; import com.tianju.book.jpa.IdentityDao; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.List; @SpringBootTest @RunWith(SpringJUnit4ClassRunner.class) public class JpaDemoTest { @Autowired private IdentityDao identityDao; @Test public void findByDistinctLike(){ ListdistinctLike = identityDao.findByDistinctLike("北京%"); distinctLike.forEach(identity->{ System.out.println(identity); }); } }
1.PostgreSQL数据库初始,开源;
2.Docker版本的postgres安装,以及挂载启动;
3.Navicat连接方式+导入向导使用,导入csv文件;
4.SpringBoot结合Jpa使用PostgreSQL初步;