当前位置: 首页 > article >正文

JDBC连接参数配置

文章目录

  • 1、Oracle - 数据库的实例、表空间、用户、表之间关系
    • 0. 数据库:
    • 1. 实例
    • 2. 表空间
    • 3. 用户
    • 4. 表
    • 5. 关联
  • 2、Mysql - 数据库、用户、表之间关系
    • 1. 数据库
    • 2. 用户
    • 3. 表
    • 4. 关联
  • 3、JDBC数据库连接配置
    • 1. driver驱动
    • 2. URL
    • 3. 用户名和密码
    • 4. SpringBoot配置

1、Oracle - 数据库的实例、表空间、用户、表之间关系

0. 数据库:

数据库是数据集合。Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。包含物理数据、数据库管理系统。也即物理数据、内存、操作系统进程的组合体。

1. 实例

一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。一个数据库可以有 N 个实例。

我们访问Oracle都是访问一个实例,但这个实例如果关联了数据库文件,就是可以访问的,同时也叫SID。

查询当前数据库实例名:

select instance_name from v$instance;

oracle数据库被实例化之后,会有很多的默认的用户sys、system(本地管理员)、scott(普通用户),我们可以通过这些管理员进入oracle数据库操作中。同时我们也是在实例中创建Oracle的用户。

2. 表空间

Oracle数据库是通过表空间来存储物理表的,一个表空间只能属于一个数据库一个数据库实例可以有 N 个表空间,一个表空间下可以有 N 张表

查看我们常规将用户表空间放置的位置:

select name from v$datafile;

创建表空间语法:

Create TableSpace --表空间名称  
DataFile          --表空间数据文件路径  
Size              --表空间初始大小  
Autoextend on

--例如
CREATE TABLESPACE test 
datafile '/usr/local/oracle/product/11.2.0/userdata/test01.dbf'
size 600M 
autoextend on next 50m 
maxsize unlimited;
 
CREATE TABLESPACE test 
datafile '/usr/local/oracle/product/11.2.0/userdata/test01.dbf'
size 600M 
autoextend off 
maxsize 1000M;  

3. 用户

Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。不同实例可以建相同名字的用户。

Oracle是由用户和表空间对数据进行管理和存放的,表不是由表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表! 这里区分就是用户了!

创建新用户:

CREATE USER 用户名
IDENTIFIED BY 密码
DEFAULT TABLESPACE 指定授权访问表空间(默认USERS)
TEMPORARY TABLESPACE 临时表空间(默认TEMP)

# 建立用户testuser
CREATE USER testuser
IDENTIFIED BY testuser
DEFAULT TABLESPACE test;

# 给用户赋予权限:
GRANT CONNECT TO utest;
GRANT RESOURCE TO utest;
grant connect,resource,dba to testuser;

查看用户:

# 查看所有用户
SELECT * FROM dba_users;

# 查看当前用户
select user from dual;

4. 表

有了数据库、表空间用户,就可以用自定义的用户在表空间创建表了。

5. 关联

  • 一个数据库可以有 N 个实例
  • 一个数据库实例可以有 N 个表空间
  • 一个数据库实例可以有 N 个用户
  • 一个表空间下可以有 N 张表

在这里插入图片描述

⚠️ 注1:

  • 安装Oracle后会有默认的实例,即ORCL。一般不创建多个实例,在默认实例下创建表空间和用户等。

2、Mysql - 数据库、用户、表之间关系

1. 数据库

一个数据库服务器可以包含 N 个数据库,每个数据库包含 N 张数据表。

# 展示所有数据库
show databases;

# 创建一个新的数据库
create database 数据库名 ; 

# 使用某一个数据库
use 数据库名 ; 

# 查询当前在哪一个数据库下
select database(); 

# 删除某一个数据库
drop database 数据库名 ; 

2. 用户

一个数据库服务器可以包含 N 个用户。

创建用户时,可以为用户分配对数据库的管理权限,所以用户可以共享所有数据库,只要具有对数据库的使用权限。

1.用户管理
# 创建新用户
create user '用户名'@'主机名' identified by '密码';

# 修改用户密码
alter user '用户名'@'主机名' identified with mysql_password by '密码';

# 删除用户
drop user '用户名'@'主机名';
 
2.权限控制
# 赋予用户权限
grant 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

# 撤销用户权限
revoke 权限列表 ON 数据库名.表名 from '用户名'@'主机名';

3. 表

一个数据库包含 N 张数据表。

4. 关联

  • 一个数据库服务器可以包含多个数据库和用户,每个数据库包含多张数据表
  • 创建用户时,可以为用户分配对数据库的管理权限,所以用户可以共享所有数据库,只要具有对数据库的使用权限。

在这里插入图片描述

3、JDBC数据库连接配置

1. driver驱动

java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。

  • Oracle的驱动:oracle.jdbc.driver.OracleDriver 或者 oracle.jdbc.OracleDriver
  • MySql的驱动: com.mysql.jdbc.Driver 或者 com.mysql.cj.jdbc.Driver

2. URL

JDBC URL的标准由三部分组成,各部分间用冒号分隔。

  • 协议:JDBC URL中的协议总是 jdbc
  • 子协议:子协议用于标识一个数据库驱动程序
  • 子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息。包含主机名(对应服务端的ip地址),端口号数据库名

在这里插入图片描述

几种常用数据库的 JDBC URL:

  • Oracle:jdbc:oracle:thin:@主机名称:oracle服务端口号:数据库名称,示例:jdbc:oracle:thin:@192.168.2.150:1521/ZNDB
  • MySql:jdbc:mysql://主机名称:mysql服务端口号/数据库名称?参数=值&参数=值,示例:jdbc:mysql://localhost:3306/sg_security?characterEncoding=utf-8&serverTimezone=UTC

3. 用户名和密码

指定访问的用户名、密码

4. SpringBoot配置

Oracle:

spring:
  datasource:
    url: jdbc:oracle:thin:@192.168.2.150:1521/ZNDB
    username: tmradmin
    password: dbyongyou
    driver-class-name: oracle.jdbc.OracleDriver

MySql:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/sg_security?characterEncoding=utf-8&serverTimezone=UTC
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

http://www.kler.cn/a/104078.html

相关文章:

  • linux-文件系统
  • 一次js请求一般情况下有哪些地方会有缓存处理?
  • Python爬虫:ad广告引擎的模拟登录
  • Golang开发软件
  • 如何使用vim粘贴鼠标复制的内容
  • hugo-stack for github
  • SpringBoot集成Redis主从架构实现读写分离(哨兵模式)
  • 学习笔记二十四:K8S四层代理Service
  • 软件测试常用的8种功能测试类型有哪些?
  • 100 # mongoose 的使用
  • 如何阻止事件冒泡和默认事件
  • java8 Lambda表达式以及Stream 流
  • 【网安大模型专题10.19】论文3:ChatGPT+自协作代码生成+角色扮演+消融实验
  • Sui提供dApp Kit 助力快速构建React Apps和dApps
  • 密码学-SHA-1算法
  • 浏览器多开,数据之间相互不干扰
  • Windows Server服务器下的Linux子系统
  • [Docker]二.Docker 镜像,仓库,容器介绍以及详解
  • 【JAVA学习笔记】44 - 注解,元注解
  • 无论有没有按钮,iPhone都可以进行截屏操作!如何在iPhone上截屏