1、服务
用Oracle要开启的服务,平时可以关了,设置成手动开启,用的时候开启就可以了
2、登录
登录本地
远程登录
3、引入pom依赖
maven里拉不到oracl的jar了,需要手动配置,
在oracle的安装目录找到jar包
oracle的安装目录中自带jar包,去安装目录找到它
cmd执行命令
打开cmd,进入oracle的jar包位置
执行maven命令
执行安装maven的命令
mvn install:install-file -Dfile=ojdbc6.jar -Dpackaging=jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0
命令解释:mvn install:install-file -Dfile=“jar包的绝对路径” -Dpackaging=“文件打包方式” -DgroupId=groupid名 -DartifactId=artifactId名 -Dversion=jar版本 (artifactId名对应之后maven配置的依赖名)。
安装完成
pom引入oracle依赖
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
4、配置oracle数据库连接
jpa的配置
<!-- 数据库信息
用户名,javax.persistence.jdbc.user
密码, javax.persistence.jdbc.password
驱动, javax.persistence.jdbc.driver
数据库地址 javax.persistence.jdbc.url
-->
<property name="user" value="sys as sysdba"></property>
<property name="password" value="root"></property>
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521/orcl" ></property>
<property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
5、数据库报错
生成策略
OracleDialect does not support identity key generation
实体类的主键注释
@GeneratedValue,oracle用GenerationType.SEQUENCE
mysql用GenerationType.IDENTITY
查询报表或视图无效
确定表存在,但是报表或试图无效,使用以下命令查看表是哪个用户的,可能这张表不属于你当前登录的用户,所以不能查,查完以后切换用户再操作
SELECT OWNER, TABLE_NAME
FROM DBA_TABLES
WHERE UPPER(TABLE_NAME) = UPPER('person') //UPPER('表名')
6、数据库备份和还原
备份
cmd中执行命令导出整个数据库
exp 用户名/密码@数据库实例名 full=y file=备份路径
exp sys/root@IPlocalhost/orcl file=d:exportoracle.dmp full=y
导入
cmd中执行命令导入整个数据库
imp 用户名/密码@数据库实例名 file=备份路径 full=y
imp sys/root@orcl file=orcl_full.dmp full=y
7、bat启动停止服务
oracle服务太占内存,每次一个个开启关闭又麻烦,网上找了个bat,用来一键启动\关闭
@echo off
@echo Oracle服务
:menu
@echo 1 启动服务,2 关闭服务, 3 退出程序
set /p s=:123 (start,stop,exit):
if "%s%"=="1" goto:start
if "%s%"=="2" goto:stop
if "%s%"=="3" goto:exit
goto:menu
:start
net start OracleOraDb11g_home1TNSListener
net start OracleServiceORCL
net start OracleDBConsoleorcl
net start OracleVssWriterORCL
net start OracleMTSRecoveryService
@echo oracle服务已全部启动
goto exit
:stop
net stop OracleOraDb11g_home1TNSListener
net stop OracleServiceORCL
net stop OracleDBConsoleorcl
net stop OracleVssWriterORCL
net stop OracleMTSRecoveryService
@echo oracle服务已全部关闭
goto exit
:exit
@echo 程序已完成
pause exit
注意:要用管理员身份运行
去不掉的空格
看起来是空格,但是用trim又去不掉,那它就不是空格,是其它的特殊字符或者什么东西,使用以下方法
select ascii( substr(' a52bfb738d2ca2532a62c1e20c440629 ',0,1) ) from dual //它的结果是9,把这个值带入到以下chr的函数中,
select replace(' a52bfb738d2ca2532a62c1e20c440629 ',chr(9),'') from dual //已经处理掉没有看起来空格又不是空格的东西
7、虚拟机服务器,启动项目后连接本机数据库失败
编辑数据库文件listener.ora
在以下位置改成本机名称,cmd查看本机名称hostname