文章目录
前言:继于上一篇
“windows如何找到并正确打开postgres可用版本”的文章,发现轻松上手作为新手还是比较难的,于是我又来了,将采用 windows版本 + IDEA + springboot2.5.X+ + 我的github代码 以带大家最快的方式轻松上手使用postgres这个数据库。(文末会附带对应的github链接)
一、官网下载对应的windows解压版本
链接: https://www.enterprisedb.com/download-postgresql-binaries
版本: 12.X
解压放在你喜欢的位置你就已经安装好软件了,个人路径是 D:\Program Files\PostgreSQL\pgsql-12.8.2
另外,为了保证后续更加方便地使用pg的命令行,建议将该路径放在windows的系统环境变量中去PATH,
二、初始化数据库并启动数据库服务
以下是windows的cmd命令
初始化数据库的基本配置信息:("D:\ProgramData\Pg"是我个人定义的数据存储位置, 用户我是使用admin)
D:\Program Files\PostgreSQL\pgsql-12.8.2\bin> .\initdb.exe -U admin -W --locale=C -E UTF8 -D "D:\ProgramData\Pg"
然后就是启动和关闭数据库服务啦:
pg_ctl -D "D:\ProgramData\Pg" -l logfile start
pg_ctl -D "D:\ProgramData\Pg" -l logfile stop
这里考虑各位的开发习惯,每次执行都要敲命令这种事情肯定是效率很低的,这里我开发了一个一键控制pg服务启动和关闭的bat,只需要点击即可
大家只需要轻轻一点即可快速启动或关闭服务了,我把代码贴这里
@echo off
pg_ctl -D D:\ProgramData\Pg -l logfile status | findstr pg_ctl | findstr PID
if "%errorlevel%"=="0" echo "pg服务器已经启动,开始关闭..."& pg_ctl -D "D:\ProgramData\Pg" -l logfile stop &goto end
echo 开始启动pg服务器...
pg_ctl -D "D:\ProgramData\Pg" -l logfile start
:end
pause
代码已经同步到github了:(https://github.com/junkaitongxue/LearnSpringBoot/blob/main/BaseServer/deployment/serverCtrl/pgSeverCtl.bat)
三、springboot使用
为什么是springboot,主要是对应后端有比较多的模板可以直接使用,而且主流,符合我们最快上手的效果。
IDEA新建一个springboot,不懂的小白可见链接:https://blog.csdn.net/qq_34205356/article/details/81098354
3.1 新增一下pom文件配置:
</dependencies>
<!-- 添加springboot的驱动-->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 添加jdbc的springboot启动配置,这个如果没有配置直接影响到启动的时候去执行创建db的sql-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
</dependencies>
3.2 添加对应的application.yml配置
spring:
application:
name: userPg
#初始化基本的配置项
datasource:
url: jdbc:postgresql://127.0.0.1:5432/learn_db
username: admin
password: 123456
driver-class-name: org.postgresql.Driver
sql:
#启动时需要初始化的建表语句
init:
username: admin
password: 123456
platform: pg
schema-locations: classpath:sql/init/createDB-{
{
platform}}.sql
mode: always
separator: ;
说明:老的版本一直是使用spring.datasource.schema:
来实现启动springboot服务的自动执行sql的,不过在高版本已经建议弃用了
spring.datasource.schema: classpath:schema-mysql.sql
3.3 根据业务建库建表
这里新建一个sql文件放在springboot项目的resource里面,具体的目录结构可见github链接
CREATE DATABASE learn_db;
CREATE TABLE IF NOT EXISTS t_persons
(
Id_P varchar(255) NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
);
3.4 简单用命令行工具查看建表是否成功
记得之前我初始化用的是admin的用户,因此我连接也需要使用这个用户
3.4.1 查看那些数据库可以连接:
psql -h 127.0.0.1 -U admin -l
3.4.2 连接:
我们就连一下这个postgres库看看,如下
psql -h 127.0.0.1 -U admin -d postgres
补充说明:如果填的用户和数据库错误,新手可能会犯以下错误:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T5Q7PCei-1636908613171)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20211114011231944.png)]
一个是psql: error: FATAL: database "admin" does not exist
,一个是psql: error: FATAL: role "postgres" does not exist
, 通过psql --help可以解决。
如果见下面则是说明创库成功了:
3.4.3 基础命令:
\l
: 显示所有表
\c dbname
: 类似use db
select datname from pg_database;
相当于mysql的show databases;
SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';
: 相当于mysql的show tables; public 是默认的schema的名字
SELECT column_name FROM information_schema.columns WHERE table_name ='table_name';
: 相当于mysql的describe table_name; 'table_name’是要查询的表的名字
其他常见的命令见菜鸟教程吧→https://www.runoob.com/postgresql/postgresql-tutorial.html
3.5 代码链接
附上一个可用的springboot项目链接:
https://github.com/junkaitongxue/LearnSpringBoot/tree/main/usePostgres
虽然看似简单,不过我也是踩了十多个坑,花了周末两天两夜的时间才完整打通整个流程,觉得有用的话欢迎大家点赞关注。
(以上为DreamKite本人原创,转载请附上原文链接)
https://github.com/junkaitongxue/LearnSpringBoot/tree/main/usePostgres
前面流程虽然看似简单,不过我也是踩了十多个坑,花了周末两天两夜的时间才完整打通整个流程,觉得有用的话欢迎大家点赞关注。
(以上为DreamKite本人原创,转载请附上原文链接)
文章评论