在此之前项目开发一直使用mysql数据库,由于项目需要,需要使用oracle数据库
1.将mysql数据库中的数据转储到oracle中
Navicat Premium 非常强大,可以连接大部分主流关系型数据库,如oracle、mysql、sqlserver、sqlite等,操作方便、界面简洁。但它还有一个更强大的功能,可以跨库批量迁移数据表,有这种需求的朋友可以通过这个工具轻松实现。
2.oracle大小写敏感
Oracle 是大小写敏感的,我们创自己写Sql脚本创建表的时候Oracle会自动将我们的表名,字段名转成大写,
create table T_WindRadar ( wr_id VARCHAR2(64) not null, wr_reciveTime DATE, wr_image BLOB, constraint PK_T_WINDRADAR primary key (wr_id) );
但是 Oracle 同样支持"" 语法,将表名或字段名加上""后,Oracle不会将其转换成大写
create table "T_WindRadar" ( "wr_id" VARCHAR2(64) not null, "wr_reciveTime" DATE, "wr_image " BLOB, constraint PK_T_WINDRADAR primary key (wr_id) );
如果加上了"",那么我们采用一般的SQL语句查询则会产生“ORA-00942: 表或视图不存在 ”,因此SQL脚本中需要将表名也加上""。
select * from "T_WindRadar";
在SQL语句中,其会自动将表名和字段名转换为大写,因此,干脆设计表时直接将数据库的表名和字段名设置为大写的吧。
3.maven中oracle连接驱动
对于oralce的jdbc驱动,在maven上搜索到把pom配置复制到pom.xml里进行引用的时候出现下面这种情况
<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.4.0</version> </dependency>
提示错误信息:Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
虽然能在maven仓库里搜索到,但貌似不能用,原因是oracle是要收费的,不能通过远程的方式来引入,只能通过配置本地库来加载到工程里
下面讲解如何配置本地库加载到工程:
一、首先,下载ojdbc14-10.2.0.4.0.jar的驱动jar包,下载地址为:
oracle官网地址:http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html
csdn用户上传的:http://download.csdn.net/download/zhaogp13/8394973
二、随意复制到一个盘,打开cmd执行以下命令(前提是要已经安装好Maven环境)
我这里是把jar文件放到了F盘下面,自己新建了一个oracle文件夹,这里随意就好,只要cmd命令下路径能找到这个jar文件就行
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=F:\oracle\ojdbc14-10.2.0.4.0.jar
执行结果:
现在,你到你本地的maven repository本地仓库文件夹下,进入 com\oracle\ojdbc14\10.2.0.4.0 目录,就能看见ojdbc14-10.2.0.4.0.jar已经在本地仓库,就可以再项目pom.xml文件中引入了
最后,再到项目pom.xml文件中添加以下代码
<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.4.0</version> </dependency>
发现错误提示已经消失
4 DBCP针对不同数据库的validationQuery
DataBase | validationQuery |
---|---|
hsqldb | select 1 from INFORMATION_SCHEMA.SYSTEM_USERS |
Oracle | select 1 from dual |
DB2 | select 1 from sysibm.sysdummy1 |
MySql | select 1 |
Microsoft SqlServer | select1 |
postgresql | select version() |
ingres | select 1 |
derby | values 1 |
H2 | select 1 |
5.JDBC连接oracle数据库的方法
连接数据的方法有四种, 这个属于最简单的,一般用网页程序
// "jdbc:oracle:thin:@计算机名称:监听端口:系统实例名", username, password,
// 计算机名称,要是自己不知道可以在计算机属性查知.
// 监听端口一般默认是1521, 要是改变了就看自己的监听文件listener.ora
// 系统实例名一般是默认orcl, 要是不是的话就用 select name from v$database; 看看当前的实例名.
// username,password,就是登陆数据库的用户名和密码.
最后分享下我的jdbc.properties文件#oracle version database settings
jdbc.driver=net.sf.log4jdbc.DriverSpy
jdbc.url=jdbc:log4jdbc:oracle:thin:@172.18.130.142:1521:orcl
jdbc.username=root
jdbc.password=root
jdbc.validationQuery=select 1 from dual
6.Hibernate中的数据库方言(Dialect)
在配置hibernate.cfg.xml时需指定使用数据库的方言:
例:
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
以下是各数据库对应的方言(Dialect):
数据库 | 方言(Dialect) |
DB2 | org.hibernate.dialect.DB2Dialect |
DB2 AS/400 | org.hibernate.dialect.DB2400Dialect |
DB2 OS390 | org.hibernate.dialect.DB2390Dialect |
PostgreSQL | org.hibernate.dialect.PostgreSQLDialect |
MySQL5 | org.hibernate.dialect.MySQL5Dialect |
MySQL5 with InnoDB | org.hibernate.dialect.MySQL5InnoDBDialect |
MySQL with MyISAM | org.hibernate.dialect.MySQLMyISAMDialect |
Oracle(any version) | org.hibernate.dialect.OracleDialect |
Oracle 9i | org.hibernate.dialect.Oracle9iDialect |
Oracle 10g | org.hibernate.dialect.Oracle10gDialect |
Oracle 11g | org.hibernate.dialect.Oracle10gDialect |
Sybase | org.hibernate.dialect.SybaseASE15Dialect |
Sybase Anywhere | org.hibernate.dialect.SybaseAnywhereDialect |
Microsoft SQL Server 2000 | org.hibernate.dialect.SQLServerDialect |
Microsoft SQL Server 2005 | org.hibernate.dialect.SQLServer2005Dialect |
Microsoft SQL Server 2008 | org.hibernate.dialect.SQLServer2008Dialect |
SAP DB | org.hibernate.dialect.SAPDBDialect |
Informix | org.hibernate.dialect.InformixDialect |
HypersonicSQL | org.hibernate.dialect.HSQLDialect |
H2 Database | org.hibernate.dialect.H2Dialect |
Ingres | org.hibernate.dialect.IngresDialect |
Progress | org.hibernate.dialect.ProgressDialect |
Mckoi SQL | org.hibernate.dialect.MckoiDialect |
Interbase | org.hibernate.dialect.InterbaseDialect |
Pointbase | org.hibernate.dialect.PointbaseDialect |
FrontBase | org.hibernate.dialect.FrontbaseDialect |
Firebird | org.hibernate.dialect.FirebirdDialect |
转载请注明出处:http://blog.csdn.net/jialinqiang/article/details/8679171