本文整理汇总了Java中com.healthmarketscience.jackcess.Index类的典型用法代码示例。如果您正苦于以下问题:Java Index类的具体用法?Java Index怎么用?Java Index使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Index类属于com.healthmarketscience.jackcess包,在下文中一共展示了Index类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
}
}
示例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;
}
示例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;
}
示例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);
}
}
示例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")));
}
}
}
}
示例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();
}
示例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();
}
示例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();
}
}
}
示例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;
}
示例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();
}
示例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);
}
示例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);
}
示例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);
}
}
示例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);
}
}
示例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++;
}
}