本文整理汇总了Java中com.healthmarketscience.jackcess.Index类的典型用法代码示例。如果您正苦于以下问题:Java Index类的具体用法?Java Index怎么用?Java Index使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Index类属于com.healthmarketscience.jackcess包,在下文中一共展示了Index类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: updateSecondaryValues
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
private static void updateSecondaryValues(Joiner joiner, Object[] oldFromRow,
Object[] newFromRow)
throws IOException
{
IndexCursor toCursor = joiner.getToCursor();
List<? extends Index.Column> fromCols = joiner.getColumns();
List<? extends Index.Column> toCols = joiner.getToIndex().getColumns();
Object[] toRow = new Object[joiner.getToTable().getColumnCount()];
for(Iterator<Row> iter = joiner.findRows(oldFromRow)
.setColumnNames(Collections.<String>emptySet())
.iterator(); iter.hasNext(); ) {
iter.next();
// create update row for "to" table
Arrays.fill(toRow, Column.KEEP_VALUE);
for(int i = 0; i < fromCols.size(); ++i) {
Object val = fromCols.get(i).getColumn().getRowValue(newFromRow);
toCols.get(i).getColumn().setRowValue(toRow, val);
}
toCursor.updateCurrentRow(toRow);
}
}
开发者ID:jahlborn,项目名称:jackcess,代码行数:25,代码来源:FKEnforcer.java
示例2: getName
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
public String getName() {
if(_name == null) {
if(_indexes.size() == 1) {
_name = _indexes.get(0).getName();
} else if(!_indexes.isEmpty()) {
List<String> names = new ArrayList<String>(_indexes.size());
for(Index idx : _indexes) {
names.add(idx.getName());
}
_name = names.toString();
} else {
_name = String.valueOf(_number);
}
}
return _name;
}
开发者ID:jahlborn,项目名称:jackcess,代码行数:17,代码来源:IndexData.java
示例3: addIndex
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
/**
* Adds a logical index which this data is backing.
*/
void addIndex(Index index) {
// we keep foreign key indexes at the back of the list. this way the
// primary index will be a non-foreign key index (if any)
if(index.isForeignKey()) {
_indexes.add(index);
} else {
int pos = _indexes.size();
while(pos > 0) {
if(!_indexes.get(pos - 1).isForeignKey()) {
break;
}
--pos;
}
_indexes.add(pos, index);
// also, keep track of whether or not this is a primary key index
_primaryKey |= index.isPrimaryKey();
}
// force name to be regenerated
_name = null;
}
开发者ID:jahlborn,项目名称:jackcess,代码行数:27,代码来源:IndexData.java
示例4: nullSecondaryValues
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
private static void nullSecondaryValues(Joiner joiner, Object[] oldFromRow)
throws IOException
{
IndexCursor toCursor = joiner.getToCursor();
List<? extends Index.Column> fromCols = joiner.getColumns();
List<? extends Index.Column> toCols = joiner.getToIndex().getColumns();
Object[] toRow = new Object[joiner.getToTable().getColumnCount()];
for(Iterator<Row> iter = joiner.findRows(oldFromRow)
.setColumnNames(Collections.<String>emptySet())
.iterator(); iter.hasNext(); ) {
iter.next();
// create update row for "to" table
Arrays.fill(toRow, Column.KEEP_VALUE);
for(int i = 0; i < fromCols.size(); ++i) {
toCols.get(i).getColumn().setRowValue(toRow, null);
}
toCursor.updateCurrentRow(toRow);
}
}
开发者ID:jahlborn,项目名称:jackcess,代码行数:23,代码来源:FKEnforcer.java
示例5: checkIndexEntries
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
private static void checkIndexEntries(final TestDB testDB, Table t, Index index) throws Exception
{
// index.initialize();
// System.out.println("Ind " + index);
Cursor cursor = CursorBuilder.createCursor(index);
while(cursor.moveToNextRow()) {
Row row = cursor.getCurrentRow();
Cursor.Position curPos = cursor.getSavepoint().getCurrentPosition();
boolean success = false;
try {
findRow(testDB, t, index, row, curPos);
success = true;
} finally {
if(!success) {
System.out.println("CurPos: " + curPos);
System.out.println("Value: " + row + ": " +
toUnicodeStr(row.get("data")));
}
}
}
}
开发者ID:jahlborn,项目名称:jackcess,代码行数:25,代码来源:IndexCodesTest.java
示例6: x_testReadAllCodesMdb
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
public void x_testReadAllCodesMdb() throws Exception
{
// Database db = openCopy(new File("/data2/jackcess_test/testAllIndexCodes.mdb"));
// Database db = openCopy(new File("/data2/jackcess_test/testAllIndexCodes_orig.mdb"));
// Database db = openCopy(new File("/data2/jackcess_test/testSomeMoreCodes.mdb"));
Database db = openCopy(Database.FileFormat.V2000, new File("/data2/jackcess_test/testStillMoreCodes.mdb"));
Table t = db.getTable("Table5");
Index ind = t.getIndexes().iterator().next();
((IndexImpl)ind).initialize();
System.out.println("Ind " + ind);
Cursor cursor = CursorBuilder.createCursor(ind);
while(cursor.moveToNextRow()) {
System.out.println("=======");
String entryStr =
entryToString(cursor.getSavepoint().getCurrentPosition());
System.out.println("Entry Bytes: " + entryStr);
System.out.println("Value: " + cursor.getCurrentRow() + "; " +
toUnicodeStr(cursor.getCurrentRow().get("data")));
}
db.close();
}
开发者ID:jahlborn,项目名称:jackcess,代码行数:26,代码来源:IndexCodesTest.java
示例7: x_testReadIsoMdb
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
public void x_testReadIsoMdb() throws Exception
{
// Database db = open(new File("/tmp/test_ind.mdb"));
// Database db = open(new File("/tmp/test_ind2.mdb"));
Database db = open(Database.FileFormat.V2000, new File("/tmp/test_ind3.mdb"));
// Database db = open(new File("/tmp/test_ind4.mdb"));
Table t = db.getTable("Table1");
Index index = t.getIndex("B");
((IndexImpl)index).initialize();
System.out.println("Ind " + index);
Cursor cursor = CursorBuilder.createCursor(index);
while(cursor.moveToNextRow()) {
System.out.println("=======");
System.out.println("Savepoint: " + cursor.getSavepoint());
System.out.println("Value: " + cursor.getCurrentRow());
}
db.close();
}
开发者ID:jahlborn,项目名称:jackcess,代码行数:22,代码来源:IndexCodesTest.java
示例8: createTables
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
/**
* Iterate over the MDB database and create SQLite tables for every table
* defined in the MS Access database.
*
* @param jdbc The SQLite database JDBC connection
*/
@SuppressWarnings("unchecked")
private static void createTables(Database mdb, SqlJetDb sqlite) throws Exception {
for (String tableName : mdb.getTableNames()) {
Table table = mdb.getTable(tableName);
sqlite.beginTransaction(SqlJetTransactionMode.WRITE);
try {
sqlite.createTable(MDB2SQLite.createTableStatement(table));
for (Index index : (List<Index>) table.getIndexes()) {
sqlite.createIndex(MDB2SQLite.createIndexStatement(index));
}
} finally {
sqlite.commit();
}
}
}
开发者ID:mbrigl,项目名称:mdb2sqlite,代码行数:22,代码来源:MDB2SQLite.java
示例9: getCursor
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
public Cursor getCursor() throws IOException {
Index idx = getBestIndex();
Cursor cursor;
CursorBuilder cb=table.newCursor();
if (idx == null)
cursor = cb.toCursor();
else
cursor = cb.setIndex(idx).toCursor();
cursor.setColumnMatcher(new ColumnMatcher());
return cursor;
}
开发者ID:andrew-nguyen,项目名称:ucanaccess,代码行数:12,代码来源:IndexSelector.java
示例10: commaSeparated
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
private String commaSeparated(List<? extends Index.Column> columns) {
String comma = "";
StringBuffer sb = new StringBuffer(" (");
for (Index.Column cd : columns) {
sb.append(comma)
.append(SQLConverter.escapeIdentifier(cd.getColumn()
.getName()));
comma = ",";
}
return sb.append(") ").toString();
}
开发者ID:andrew-nguyen,项目名称:ucanaccess,代码行数:12,代码来源:LoadJet.java
示例11: loadForeignKey
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
private void loadForeignKey(Index idxi) throws IOException, SQLException {
IndexImpl idx=(IndexImpl)idxi;
String ntn = SQLConverter
.escapeIdentifier(idx.getTable().getName());
if(ntn==null)return;
String nin = SQLConverter.escapeIdentifier(idx.getName());
nin = (ntn + "_" + nin).replaceAll("\"", "").replaceAll("\\W", "_");
String colsIdx = commaSeparated(idx.getColumns());
String colsIdxRef = commaSeparated(idx.getReferencedIndex()
.getColumns());
StringBuffer ci = new StringBuffer("ALTER TABLE ").append(ntn);
ci.append(" ADD CONSTRAINT ").append(nin);
String nrt = SQLConverter.escapeIdentifier(idx.getReferencedIndex()
.getTable().getName());
if(nrt==null)return;
ci.append(" FOREIGN KEY ").append(colsIdx).append(" REFERENCES ")
.append(nrt).append(colsIdxRef);
//riw
if (idx.getReference().isCascadeDeletes()) {
ci.append(" ON DELETE CASCADE ");
}
if (idx.getReference().isCascadeUpdates()) {
ci.append(" ON UPDATE CASCADE ");
}
try {
execCreate(ci.toString(),true);
} catch (SQLException e) {
if (e.getErrorCode() == HSQL_FK_ALREADY_EXISTS) {
Logger.log(e.getMessage());
} else
throw e;
}
loadedIndexes.add("FK on " + ntn + " Columns:" + colsIdx
+ " References " + nrt + " Columns:" + colsIdxRef);
}
开发者ID:andrew-nguyen,项目名称:ucanaccess,代码行数:37,代码来源:LoadJet.java
示例12: loadIndex
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
private void loadIndex(Index idx) throws IOException, SQLException {
String ntn = SQLConverter
.escapeIdentifier(idx.getTable().getName());
if(ntn==null)return;
String nin = SQLConverter.escapeIdentifier(idx.getName());
nin = (ntn + "_" + nin).replaceAll("\"", "").replaceAll("\\W", "_");
boolean uk = idx.isUnique();
boolean pk = idx.isPrimaryKey();
StringBuffer ci = new StringBuffer("ALTER TABLE ").append(ntn);
String colsIdx = commaSeparated(idx.getColumns());
if (pk) {
ci.append(" ADD PRIMARY KEY ").append(colsIdx);
} else if (uk) {
ci.append(" ADD CONSTRAINT ").append(nin);
ci.append(" UNIQUE ").append(colsIdx);
} else {
ci = new StringBuffer("CREATE INDEX ").append(nin)
.append(" ON ").append(ntn).append(colsIdx);
}
try {
execCreate(ci.toString(),true);
} catch (Exception e) {
if (idx.isUnique()) {
for (Index.Column cd : idx.getColumns()) {
if (cd.getColumn().getType()
.equals(DataType.COMPLEX_TYPE)) {
return;
}
}
}
Logger.logWarning(e.getMessage());
return;
}
String pre = pk ? "Primary Key " : uk ? "Index Unique " : "Index";
loadedIndexes.add(pre + " on " + ntn + " Columns:" + colsIdx);
}
开发者ID:andrew-nguyen,项目名称:ucanaccess,代码行数:38,代码来源:LoadJet.java
示例13: loadTableFKs
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
private void loadTableFKs(String tableName) throws IOException,
SQLException {
Table table = dbIO.getTable(tableName);
for (Index idxi : table.getIndexes()) {
//riw
IndexImpl idx=(IndexImpl)idxi;
if (idx.isForeignKey() && !idx.getReference().isPrimaryTable())
loadForeignKey(idx);
}
}
开发者ID:andrew-nguyen,项目名称:ucanaccess,代码行数:11,代码来源:LoadJet.java
示例14: loadTableIndexes
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
private void loadTableIndexes(String tableName) throws IOException,
SQLException {
Table table = dbIO.getTable(tableName);
for (Index idx : table.getIndexes()) {
if (!idx.isForeignKey())
loadIndex(idx);
}
}
开发者ID:andrew-nguyen,项目名称:ucanaccess,代码行数:9,代码来源:LoadJet.java
示例15: debugTable
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
private static void debugTable(Table table, SequenceWriter columnCsv) throws IOException {
System.out.println("\tTable columns for " + table.getName());
try {
for (Column nextColumn : table.getColumns()) {
System.out.println("\t\t" + nextColumn.getName());
columnCsv.write(Arrays.asList(table.getName() + "." + nextColumn.getName(),
table.getName() + "." + nextColumn.getName(), "", ""));
}
Index primaryKeyIndex = table.getPrimaryKeyIndex();
System.out.println(
"\tFound primary key index for table: " + table.getName() + " named " + primaryKeyIndex.getName());
debugIndex(primaryKeyIndex, new HashSet<>(), columnCsv);
for (Index nextIndex : table.getIndexes()) {
if (!nextIndex.getName().equals(primaryKeyIndex.getName())) {
System.out.println("\tFound non-primary key index for table: " + table.getName() + " named "
+ nextIndex.getName());
debugIndex(nextIndex, new HashSet<>(), null);
}
}
} catch (IllegalArgumentException e) {
System.out.println("No primary key index found for table: " + table.getName());
}
Cursor cursor = table.getDefaultCursor();
int i = 0;
while (cursor.moveToNextRow()) {
if (i >= 5) {
break;
}
System.out.println(cursor.getCurrentRow().toString());
i++;
}
}
开发者ID:ansell,项目名称:csvsum,代码行数:38,代码来源:AccessMapper.java
示例16: debugIndex
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
private static void debugIndex(Index index, Set<Index> visited, SequenceWriter csvWriter) throws IOException {
visited.add(index);
System.out.println("\t\tIndex columns:");
StringBuilder columnList = new StringBuilder();
for (Index.Column nextColumn : index.getColumns()) {
System.out.print("\t\t\t" + nextColumn.getName());
if (columnList.length() > 0) {
columnList.append(",");
}
columnList.append(index.getTable().getName() + "." + nextColumn.getName());
}
if (csvWriter != null) {
csvWriter.write(
Arrays.asList(columnList.toString(), columnList.toString(), "Access", columnList.toString()));
}
System.out.println("");
Index referencedIndex = index.getReferencedIndex();
if (referencedIndex != null) {
System.out.println("\t" + index.getName() + " references another index: " + referencedIndex.getName());
if (!visited.contains(referencedIndex)) {
visited.add(referencedIndex);
debugIndex(referencedIndex, visited, null);
}
}
}
开发者ID:ansell,项目名称:csvsum,代码行数:30,代码来源:AccessMapper.java
示例17: getPrimaryKeys
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
/**
* Get all primary keys for the table
*
* @param table
* @return a list of primary keys
*/
private List<String> getPrimaryKeys(Table table) {
log.debug("getPrimaryKeys");
List<String> primaryKeyList = new ArrayList<String>();
for (Index index : table.getIndexes()) {
for (Index.Column column : index.getColumns()) {
if (index.isPrimaryKey()) {
primaryKeyList.add(column.getName());
}
}
}
return primaryKeyList;
}
开发者ID:ox-it,项目名称:ords-database-api,代码行数:20,代码来源:PostgresAccessDatabaseServiceImpl.java
示例18: createIndex
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
/**
* Create an index in an SQLite table for the corresponding index in MS Access
*
* @param table MS Access table
* @param jdbc The SQLite database JDBC connection
* @throws SQLException
*/
private void createIndex(final Index index, final Connection jdbc) throws SQLException {
final List<Index.ColumnDescriptor> columns = index.getColumns();
final StringBuilder stmtBuilder = new StringBuilder();
/* Create the statement */
final String tableName = index.getTable().getName();
final String indexName = tableName + "_" + index.getName();
final String uniqueString = index.isUnique() ? "UNIQUE" : "";
stmtBuilder.append("CREATE "+ uniqueString + " INDEX " + escapeIdentifier(indexName));
stmtBuilder.append(" ON " + escapeIdentifier(tableName) + " (");
final int columnCount = columns.size();
for (int i = 0; i < columnCount; i++){
final Index.ColumnDescriptor column = columns.get(i);
stmtBuilder.append(escapeIdentifier(column.getName()));
stmtBuilder.append(" ");
if (i + 1 < columnCount)
stmtBuilder.append(", ");
}
stmtBuilder.append(")");
/* Execute it */
final Statement stmt = jdbc.createStatement();
stmt.execute(stmtBuilder.toString());
}
开发者ID:tinogomes,项目名称:mdb-sqlite,代码行数:35,代码来源:AccessExporter.java
示例19: Joiner
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
private Joiner(Index fromIndex, IndexCursor toCursor)
{
_fromIndex = fromIndex;
_fromCols = _fromIndex.getColumns();
_entryValues = new Object[_fromCols.size()];
_toCursor = toCursor;
}
开发者ID:jahlborn,项目名称:jackcess,代码行数:8,代码来源:Joiner.java
示例20: create
import com.healthmarketscience.jackcess.Index; //导入依赖的package包/类
/**
* Creates a new Joiner based on the given index which backs a foreign-key
* relationship. The table of the given index will be the "from" table and
* the table on the other end of the relationship will be the "to" table.
*
* @param fromIndex the index backing one side of a foreign-key relationship
*/
public static Joiner create(Index fromIndex)
throws IOException
{
Index toIndex = fromIndex.getReferencedIndex();
IndexCursor toCursor = CursorBuilder.createCursor(toIndex);
// text lookups are always case-insensitive
toCursor.setColumnMatcher(CaseInsensitiveColumnMatcher.INSTANCE);
return new Joiner(fromIndex, toCursor);
}
开发者ID:jahlborn,项目名称:jackcess,代码行数:17,代码来源:Joiner.java
注:本文中的com.healthmarketscience.jackcess.Index类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论