Oracle 安装及 Spring 使用 Oracle

参考内容:

docker安装oracle数据库史上最全步骤(带图文)

Mac下oracle数据库客户端

Docker安装Oracle

docker能安装oracle吗

Batch script for add a auto-increased primary key for exist table with records

Docker 安装 Oracle11g

注意:下列安装方式仅适用于x86架构服务器,不适用于arm架构服务器

# 拉取 oracle11,镜像有点大,需要花一些时间
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g# 查看镜像是否拉取成功
docker images# 给镜像重新打 tag,原来的名字太长了
docker tag registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g oracle11g:latest# 启动 oracle11g 容器
docker run --name=oracle11g -itd -p 1521:1521# 进入容器进行配置
docker exec -it oracle11g /bin/bash# 切换到 root 用户,密码为:helowin
su root# 编辑配置文件

编辑/etc/profile,在其中增加如下内容:

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

编辑完成后,需要刷新上述环境变量才能使用。

# 刷新环境变量
source /etc/profile# 创建软链接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin# 切换到 oracle 用户
su - oracle# 登陆 sqlplus
sqlplus /nolog
conn /as sysdba# 修改 system 用户密码
alter user system identified by system;
# 修改 sys 用户密码
alter user sys identified by system;# 创建内部管理员账号
create user test identified by test;# 将 dba 权限授权给内部管理员账号和密码
grant connect,resource,dba to test;# 修改密码规则策略为密码永不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;# 修改数据库最大连接数据
alter system set processes=1000 scope=spfile;

修改上述信息后,需要重新启动数据库才会生效。

conn /as sysdba# 关闭数据库
shutdown immediate;# 启动数据库
startup;# 退出软链接
exit;

客户端连接 Oracle

以 Navicat 客户端为例,新建连接时按下图方式填写连接信息即可,密码即为system。需要注意的是,在 Windows 下选择 SID 或是服务名均可连接成功,但是在 Mac 下需要选择 SID 方式才能连接成功。

在这里插入图片描述

Oracle 实现主键自增

Oracle 在创建表的时候,不能像 MySQL 那样选择主键直接自增,但是我们可以通过给表创建序列和触发器去实现自增。下文以创建 USER 表为例。

-- 删除原有 USER 表
DROP TABLE "TEST"."USER";
-- 创建 USER 表
CREATE TABLE "TEST"."USER" ("id" NUMBER NOT NULL,"gmt_create" DATE NOT NULL,"gmt_modified" DATE NOT NULL,"is_deleted" NUMBER NOT NULL,"login" NVARCHAR2(255) NOT NULL,"passwd" NVARCHAR2(255) NOT NULL,"nick" NVARCHAR2(255) NOT NULL,"phone" NVARCHAR2(255),"head_img" NVARCHAR2(255),"status" NVARCHAR2(255),"remark" NCLOB
);-- 删除原有序列
DROP SEQUENCE "TEST"."USER_SEQ";
-- 创建 USER_SEQ 序列,最小值为 1
CREATE SEQUENCE "TEST"."USER_SEQ" 
-- 最小值为 1
MINVALUE 1 
-- 最大值为 9999999999999999999999999999
MAXVALUE 9999999999999999999999999999 
-- 每次增加 1
INCREMENT BY 1 
-- 将 20 个序列值放入缓存
CACHE 20;-- 创建触发器
CREATE TRIGGER "TEST"."USER_TRIGGER" 
-- 在插入数据前执行
BEFORE INSERT ON "TEST"."USER" 
-- 命名老数据为 OLD,新数据为 NEW
REFERENCING OLD AS "OLD" NEW AS "NEW" 
-- 针对表的每一行都执行触发器
FOR EACH ROW 
-- 将序列值赋值给 id
BEGIN:NEW."id" := USER_SEQ.NEXTVAL;
END;
/

需要注意的是,上面的/符号不能少。执行插入语句时可以发现,id会自动增加。

INSERT INTO "TEST"."USER" ("gmt_create", "gmt_modified", "is_deleted", "login", "passwd", "nick", "phone", "head_img", "status", "remark") VALUES (TO_DATE('2023-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), TO_DATE('2023-04-01 17:04:30', 'SYYYY-MM-DD HH24:MI:SS'), '0', 'user', '123', 'Jack', '1111', 'head.jpg', '激活', '测试');

Java Spring+Mybatis 使用 Oracle 及配置分页

application.properties文件配置信息:

# mybatis
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@8127.0.0.1:1521:helowin
spring.datasource.username=system
spring.datasource.password=system
mybatis.mapper-locations=classpath*:mybatis/*.xml
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl# pageHelper
pagehelper.helperDialect=oracle
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

pom.xml配置文件关键信息。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><properties><java.version>1.8</java.version><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.source>1.8</maven.compiler.source><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring.boot-version>2.1.3.RELEASE</spring.boot-version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring.boot-version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.0</version></dependency><dependency><groupId>com.oracle.ojdbc</groupId><artifactId>ojdbc8</artifactId><version>19.3.0.0</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.3</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId></dependency></dependencies></dependencyManagement>
</project>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/134085.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element 弹窗浏览器后退-遮照层还存在问题 以及跟vue keep-alive冲突

问题&#xff1a;element 弹窗浏览器后退-遮照层还存在问题 查询官网可以设置 modal-append-to-body“false” 可以全局设置 ElementUI.Dialog.props.modalAppendToBody.default false 后续 基本到这能解决问题&#xff0c;不过本项目比较特殊&#xff0c;使用了 keep-alive…

自定义拖拽列表

效果图 DataAnalysis.vue <template><div class"app-container"><div class"operate"><el-select class"t_select" v-model"templateName" clearable placeholder"模版" size"default" cle…

java计算机毕业设计SpringBoot在线答疑系统

项目介绍 本文从学生的功能要求出发&#xff0c;建立了在线答疑系统&#xff0c;系统中的功能模块主要是实现管理员权限&#xff1b;首页、个人中心、学生管理、教师管理、问题发布管理、疑难解答管理。教师权限&#xff1a;首页、个人中心、疑难解答管理、试卷管理、试题管理…

Halcon WPF 开发学习笔记(1):Hello World小程序

文章目录 文章专栏视频链接Hello World训练图片训练目的 开始训练图像预处理导入图像三通道处理调用算子通道选取 滤波什么是好的滤波 增加对比度 区域选取阈值处理算子参数选择运行结果(红色为选择区域) 区域分割运行结果 特征筛选参数代码第二次&#xff0c;面积筛选 画选中十…

技术分享 | 想做App测试就一定要了解的App结构

app 的结构包含了 APK 结构和 app 页面结构两个部分 APK结构 APK 是 Android Package 的缩写&#xff0c;其实就是 Android 的安装包。通过将 APK 文件直接传到 Android 模拟器或 Android 手机中执行即可安装。 APK 文件其实是 zip 格式&#xff0c;但后缀名被修改为 apk&am…

插入损耗——线对上的信号衰减

“您好&#xff0c;我需要您的帮助。我在测试长距离线缆的时候&#xff0c;插入损耗没有通过测试&#xff01;”这是在对铜缆布线进行验收测量时&#xff0c;我们经常能够听到的问题。针对这一情况&#xff0c;我们必须了解这一电气特性的基础知识&#xff0c;才能提供更专业的…

jenkins gitlab CI/CD

jenkins的安装教程就不说了&#xff1a;Jenkins docker 一键发布 (一)_jenkins 一键发布-CSDN博客 最近打算从svn切换到gitlab&#xff0c;所以配置了一下jenkins的git 很简单&#xff0c;直接上图 1 选择 Git 2 录入gitlab的http地址&#xff08;由于我的git地址不是22端口&…

【Spring】使用注解装配bean

目录 使用注解的两个必要步骤 正文 Cat Dog Animal beans.xml 测试 Qualifier 使用注解的两个必要步骤 1.导入约束 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:…

3线SPI驱动 HX8347 TFT屏

老五家2.8寸屏&#xff0c;3线SPI驱动 前言 要知道屏幕的驱动芯片都小的惊人&#xff0c;想必是不会打上丝印的。从几百个引脚中判断哪个是哪个&#xff0c;想想就晕。 大佬们都太厉害了&#xff0c;看看PFC就知道屏幕的接线定义。一直好奇这种神技是怎么练成的。也尝试自己来…

ASUS华硕灵耀X2 Duo UX481FA(FL,FZ)_UX4000F工厂模式原装出厂Windows10系统

下载链接&#xff1a;https://pan.baidu.com/s/1sRHKBOyc3zu1v0qw4dSASA?pwd7nb0 提取码&#xff1a;7nb0 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、MyASUS华硕电脑管家等预装程序所需要工具&#xff1a;16G或以上…

按键精灵中的UI界面操作

1. 按键精灵中UI界面常用的控件 1. 文字框 界面1: {标签页1:{文字框:{名称:"文字框1",显示内容:"显示内容",文字大小:0,高度:0,宽度:0,注释:"文字大小、高度、宽度是可选属性&#xff0c;如需使用默认值&#xff0c;可保持值为0或直接删除此属性&qu…

技术分享 | App常见bug解析

功能Bug 内容显示错误 前端页面展示的内容有误。 这种错误的产生有两种可能 1、前端代码写的文案错误 2、接口返回值错误 功能错误 功能错误是在测试过程中最常见的类型之一&#xff0c;也就是产品的功能没有实现。比如图中的公众号登录不成功的问题。 界面展示错乱 产品…

网络溯源-PSEXEC-简单

题干&#xff1a; 我们的入侵检测系统&#xff08;IDS&#xff09;已发出警报&#xff0c;指示涉及使用PsExec的可疑横向移动活动。为了有效响应此事件&#xff0c;您作为 SOC 分析师的角色是分析存储在 PCAP 文件中的捕获网络流量。 攻击者首次攻击成功的计算机源网络IP地址…

【服务器】Java连接redis及使用Java操作redis、使用场景

一、Java连接redis-No-SQL 1、导入依赖 在你的项目里面导入redis的pom依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version> </dependency> 2、连接redis 连接redis //…

AI:61-基于深度学习的草莓病害识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

高压放大器能够在哪里使用呢

高压放大器是一种重要的电子设备&#xff0c;可以在许多不同的领域和应用中使用。下面西安安泰将详细介绍高压放大器的应用。 医学影像&#xff1a;高压放大器在医学影像领域具有广泛的应用。医学影像设备&#xff08;如X射线机、CT扫描仪等&#xff09;需要高压来产生足够的能…

竞赛选题 深度学习手势识别算法实现 - opencv python

文章目录 1 前言2 项目背景3 任务描述4 环境搭配5 项目实现5.1 准备数据5.2 构建网络5.3 开始训练5.4 模型评估 6 识别效果7 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习手势识别算法实现 - opencv python 该项目较为新颖…

网络的地址簿:Linux DNS服务的全面指南

1 dns 1.1 dns&#xff08;域名解析服务&#xff09;介绍 当访问 www.baidu.com 首先查询/etc/hosts&#xff0c;如果没有再去查询/etc/resolv.conf&#xff0c;还是没有就去查询域名服务器 关于客户端: /etc/resolv.conf ##dns指向文件 nameserver 172.25.254.20测试&…

Oracle(11)Managing Tables

Managing Tables 管理表 目标&#xff1a; 识别存储数据的各种方法概述甲骨文数据类型区分扩展ROWID与限制ROWID勾勒出一行的结构创建常规表和临时表管理表中的存储结构重新组织、截断和删除表删除表中的列 一、基础知识 1、Oracle Built-in Data Types Oracle内置数据类型 2…

竞赛选题 深度学习手势检测与识别算法 - opencv python

文章目录 0 前言1 实现效果2 技术原理2.1 手部检测2.1.1 基于肤色空间的手势检测方法2.1.2 基于运动的手势检测方法2.1.3 基于边缘的手势检测方法2.1.4 基于模板的手势检测方法2.1.5 基于机器学习的手势检测方法 3 手部识别3.1 SSD网络3.2 数据集3.3 最终改进的网络结构 4 最后…