oraclepersistencemanager.java
来自「jsr170接口的java实现。是个apache的开源项目。」· Java 代码 · 共 134 行
JAVA
134 行
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.jackrabbit.core.persistence.bundle;import java.sql.DatabaseMetaData;import java.sql.SQLException;import org.apache.jackrabbit.core.persistence.PMContext;import org.apache.jackrabbit.core.persistence.bundle.util.NGKDbNameIndex;import org.apache.jackrabbit.core.persistence.bundle.util.DbNameIndex;/** * Extends the {@link BundleDbPersistenceManager} by Oracle specific code. * <p/> * Configuration:<br> * <ul> * <li><param name="{@link #setExternalBLOBs(String)} externalBLOBs}" value="false"/> * <li><param name="{@link #setBundleCacheSize(String) bundleCacheSize}" value="8"/> * <li><param name="{@link #setConsistencyCheck(String) consistencyCheck}" value="false"/> * <li><param name="{@link #setMinBlobSize(String) minBlobSize}" value="16384"/> * <li><param name="{@link #setDriver(String) driver}" value="oracle.jdbc.OracleDriverr"/> * <li><param name="{@link #setUrl(String) url}" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/> * <li><param name="{@link #setUser(String) user}" value="crx"/> * <li><param name="{@link #setPassword(String) password}" value="crx"/> * <li><param name="{@link #setSchema(String) schema}" value="oracle"/> * <li><param name="{@link #setSchemaObjectPrefix(String) schemaObjectPrefix}" value="${wsp.name}_"/> * <li><param name="{@link #setErrorHandling(String) errorHandling}" value=""/> * </ul> */public class OraclePersistenceManager extends BundleDbPersistenceManager { /** the cvs/svn id */ static final String CVS_ID = "$URL: http://svn.apache.org/repos/asf/jackrabbit/tags/1.3.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/OraclePersistenceManager.java $ $Rev: 544297 $ $Date: 2007-06-05 00:56:13 +0300 (Tue, 05 Jun 2007) $"; /** * Creates a new oracle persistence manager */ public OraclePersistenceManager() { // enable db blob support setExternalBLOBs(false); } public void init(PMContext context) throws Exception { // init default values if (getDriver() == null) { setDriver("oracle.jdbc.OracleDriver"); } if (getUrl() == null) { setUrl("jdbc:oracle:thin:@127.0.0.1:1521:xe"); } if (getUser() == null) { setUser("crx"); } if (getPassword() == null) { setPassword("crx"); } if (getSchema() == null) { setSchema("oracle"); } if (getSchemaObjectPrefix() == null) { setSchemaObjectPrefix(context.getHomeDir().getName() + "_"); } super.init(context);/* // check driver version DatabaseMetaData metaData = con.getMetaData(); if (metaData.getDriverMajorVersion() < 10) { // oracle drivers prior to version 10 only support // writing BLOBs up to 32k in size... log.warn("unsupported driver version detected: " + metaData.getDriverName() + " v" + metaData.getDriverVersion()); }*/ } /** * Retruns a new instance of a NGKDbNameIndex. * @return a new instance of a NGKDbNameIndex. * @throws SQLException if an SQL error occurs. */ protected DbNameIndex createDbNameIndex() throws SQLException { return new NGKDbNameIndex(con, schemaObjectPrefix); } /** * {@inheritDoc} * * @return <code>true</code> */ protected boolean checkTablesWithUser() { return true; } /** * Since Oracle only supports table names up to 30 characters in * length illegal characters are simply replaced with "_" rather than * escaping them with "_x0000_". * * @inheritDoc */ protected void prepareSchemaObjectPrefix() throws Exception { DatabaseMetaData metaData = con.getMetaData(); String legalChars = metaData.getExtraNameCharacters(); legalChars += "ABCDEFGHIJKLMNOPQRSTUVWXZY0123456789_"; String prefix = schemaObjectPrefix.toUpperCase(); StringBuffer escaped = new StringBuffer(); for (int i = 0; i < prefix.length(); i++) { char c = prefix.charAt(i); if (legalChars.indexOf(c) == -1) { escaped.append('_'); } else { escaped.append(c); } } schemaObjectPrefix = escaped.toString(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?