|
JavaTM Platform Standard Ed. 6 |
|||||||||
��һ���� ��һ���� | ��� ��� ������ | |||||||||
ժҪ�� Ƕ�� | �ֶ� | ���췽�� | ���� | ��ϸ��Ϣ�� �ֶ� | ���췽�� | ���� |
public interface SyncResolver
����һ����ܣ�������ͬ����ͻʱ��������Ӧ�ó���ʹ���ֹ���������ȷ��Ӧ��ִ�еIJ�������ȻӦ�ó����ֹ����ͬ����ͻ������ί�й��̣����˿�ܻ����ṩ��һЩ������ͻʱί��Ӧ�ó���ķ�����
ע�⣬��ͻ��ָ RowSet
�����ԭʼ��ֵ������Դ�е�ֵ��ƥ����������ָʾ�����һ��ͬ����������Դ���ѱ��ġ���Ҫע�⣬RowSet
�����ԭʼֵ�������һ��ͬ��֮ǰ��ֵ�����������ʼֵ��
SyncResolver
���������SyncResolver
������ʵ�� SyncResolver
�ӿڵ�ר�� RowSet
���������������ӵ� RowSet
����JdbcRowSet
�ӿڵ�ʵ�֣�������� RowSet
����CachedRowSet
�ӿڻ���һ���ӽӿڵ�ʵ�֣�����ʽ���в������й��ӽӿڵ���Ϣ������� javax.sql.rowset
��������SyncResolver
�IJο�ʵ��ʵ���� CachedRowSet
�ӿڣ���������ʵ�ֿ���ѡ��ʵ�� JdbcRowSet
�ӿڣ��������ض�����Ҫ��
Ӧ�ó�����ʹ RowSet
����������Դͬ����ͨ������ CachedRowSet
���� acceptChanges
���������ҵ�һ��������ͻ֮��rowset �� SyncProvider
����ᴴ��һ�� SyncResolver
ʵ������һ�µ� SyncResolver
������������ڳ���ͬ���� RowSet
������ͬ��������������SyncResolver
�����������Դ�е��³�ͻ��ֵ������ֵ��Ϊ null
�����⣬����������ÿ����ͻ����Ϣ��
SyncResolver
����acceptChanges
������ͻʱ��SyncProvider
����ᴴ�� SyncProviderException
����ʹ���µ� SyncResolver
���������������� acceptChanges
���׳����쳣��Ȼ��Ӧ�ó�����Բ����������Ի�ȡ�������� SyncResolver
�������´���Ƭ��ʹ�� SyncProviderException
���� getSyncResolver
����ȡ SyncResolver
���� resolver��
} catch (SyncProviderException spe) { SyncResolver resolver = spe.getSyncResolver(); ... }
ͨ����ӵ�е� resolver��Ӧ�ó������ʹ������ȡ���ڳ�ͻ����Ϣ��SyncResolver
������ resolver�����ٴ��ڳ�ͻ��ÿ�����еij�ͻ���������������� rowset ����Ӱ��ı����Ա��ڽ����ǰ��ͻʱ���ٷ���������ͻ��
���Դ� SyncResolver
�����ȡ���¼�����Ϣ��
SyncProvider
�ӿڶ������ĸ��������������ܷ�����״̬���������������������ֳ�ͻʱ RowSet
��������ͼִ�еIJ������ͣ����¡�ɾ������룩�����ĸ�����ָʾ�����ڳ�ͻ���� SyncResolver
������÷��� getStatus
ʱ����Щ�������ǿ��ܵķ���ֵ��
int operation = resolver.getStatus();
RowSet
������IJ�����д�뵽����Դ��ֵ����һ��ͬ������Ҳ������Դ�б�����ʱ���ᷢ����ͻ��Ӧ�ó�����Ե��� SyncResolver
�ķ��� getConflictValue
����ȡ����Դ�е��³�ͻ��ֵ����Ϊ SyncResolver
�����е�ֵ��ȡ������Դ�ij�ͻֵ��
java.lang.Object conflictValue = resolver.getConflictValue(2);ע�⣬resolver �е��п���ʹ���к�ָ���������ϴ���������ʾ����Ҳ������������ָ����
ʹ�ôӷ��� getStatus
�� getConflictValue
��ȡ������Ϣ��Ӧ�ó����������Ӧ������Դ�б�����һ��ֵ�ľ�����Ȼ��Ӧ�ó������ SyncResolver
�ķ��� setResolvedValue
������������ RowSet
�����к�����Դ��Ҫ������ֵ��
resolver.setResolvedValue("DEPT", 8390426);�����ϴ������У�������ָ��
RowSet
������Ҫʹ�ø���ֵ���õ��С�Ҳ�������к���ָ���С�
�����ǰ��ͻ���е����г�ͻ֮��Ӧ�ó������÷��� setResolvedValue
������ SyncResolver
������ÿ����ͻ���ظ��˹��̡�
SyncResolver
����SyncResolver
������ RowSet
��������Ӧ�ó������ʹ�����е� RowSet
�����ƶ�ָ�������� SyncResolver
�������磬Ӧ�ó������ʹ�� RowSet
�ķ��� next
����ÿ���У�Ȼ����� SyncResolver
�ķ��� getStatus
�鿴���Ƿ������ͻ���ھ���һ��������ͻ�����У�Ӧ�ó�����Ե������������κη� null ֵ������������Դ�д��ڳ�ͻ״̬��ֵ��
Ҫʹ���� SyncResolver
��������ף������Ǵ��ڴ���û�г�ͻ����ʱ��SyncResolver
�ӿڶ����˷��� nextConflict
�� previousConflict
������ֻ�ƶ������ٰ���һ����ͻֵ���С�Ȼ��Ӧ�ó���ͨ���ṩ�к���Ϊ�������� SyncResolver
�ķ��� getConflictValue
���Ի�ȡ��ͻֵ��������һ���еĴ���Ƭ�θ�����һ��ʾ����
RowSet
���� crs ��γ���ʹ������ײ�����Դͬ����Ȼ������ͻ���� try
���У�crs ���÷��� acceptChanges
���� Connection
���� con ���ݸ�������������ڳ�ͻ���� crs �еĸ���д�뵽����Դ���ɡ����ǣ�������ڳ�ͻ���� acceptChanges
���׳� SyncProviderException
����catch
����Ч���ڴ�ʾ���У������˶��� SyncResolver
����ʹ�÷�ʽ�е�һ�֣��� while
ѭ���У�ʹ�� SyncResolver
�ķ��� nextConflict
��nextConflict
���� false
ʱѭ������ֹ���ⷢ���� SyncResolver
���� resolver �в����г�ͻ��ʱ���ڴ��ض��Ĵ���Ƭ���У�resolver �����и��³�ͻ���У�״̬Ϊ SyncResolver.UPDATE_ROW_CONFLICT
���У����˴���Ƭ�����ಿ�ֽ�ִ������ crs ���Ը��¶�������ͻ���С�
resolver ��ָ���ƶ����и��³�ͻ����һ����ͻ��֮���� getRow
ָʾ��ǰ�е����֣����ҽ� CachedRowSet
���� crs ��ָ���Ƶ� crs �еĶԵ��С�ͨ������ resolver �� crs ���е��У����Ի�ȡ�ͱȽϳ�ͻֵ����ȷ��Ӧ������һ��ֵ���ڴ˴���Ƭ���У�crs �е�ֵ������Ϊ���ֵ��ֵ������ζ������������д����Դ�еij�ͻֵ��
try { crs.acceptChanges(con); } catch (SyncProviderException spe) { SyncResolver resolver = spe.getSyncResolver(); Object crsValue; // value in theRowSet
object Object resolverValue: // value in theSyncResolver
object Object resolvedValue: // value to be persisted while(resolver.nextConflict()) { if(resolver.getStatus() == SyncResolver.UPDATE_ROW_CONFLICT) { int row = resolver.getRow(); crs.absolute(row); int colCount = crs.getMetaData().getColumnCount(); for(int j = 1; j <= colCount; j++) { if (resolver.getConflictValue(j) != null) { crsValue = crs.getObject(j); resolverValue = resolver.getConflictValue(j); . . . // compare crsValue and resolverValue to determine // which should be the resolved value (the value to persist) resolvedValue = crsValue; resolver.setResolvedValue(j, resolvedValue); } } } } }
�ֶ�ժҪ | |
---|---|
static int |
DELETE_ROW_CONFLICT
ָʾ�� RowSet ������ͼɾ������Դ�е���ʱ������ͻ�� |
static int |
INSERT_ROW_CONFLICT
ָʾ�� RowSet ������ͼ���в�������Դ��ʱ������ͻ�� |
static int |
NO_ROW_CONFLICT
ָʾ�� RowSet ������ͼ���¡�ɾ�����������Դ�е���ʱ�������κγ�ͻ�� |
static int |
UPDATE_ROW_CONFLICT
ָʾ�� RowSet ������ͼ��������Դ�е���ʱ������ͻ�� |
����ժҪ | |
---|---|
Object |
getConflictValue(int index)
��ȡ�� SyncResolver ����ĵ�ǰ����ָ���е�ֵ����������Դ�е��³�ͻ��ֵ�� |
Object |
getConflictValue(String columnName)
��ȡ�� SyncResolver ����ĵ�ǰ����ָ���е�ֵ����������Դ�е��³�ͻ��ֵ�� |
int |
getStatus()
��ȡ�� SyncResolver �ĵ�ǰ�еij�ͻ״̬����ָʾ�ڷ�����ͻʱ RowSet ���������ԵIJ����� |
boolean |
nextConflict()
��ָ����䵱ǰλ���ƶ�����һ��������ͻֵ���С� |
boolean |
previousConflict()
��ָ����䵱ǰλ���ƶ����� SyncResolver ��������һ����ͻ�С� |
void |
setResolvedValue(int index,
Object obj)
�� obj ����Ϊ��ͬ���� RowSet ����ǰ���е� index �е�ֵ�� |
void |
setResolvedValue(String columnName,
Object obj)
�� obj ����Ϊ��ͬ���� RowSet ����ǰ������ columnName ��ֵ�� |
�ӽӿ� java.sql.Wrapper �̳еķ��� |
---|
isWrapperFor, unwrap |
�ֶ���ϸ��Ϣ |
---|
static final int UPDATE_ROW_CONFLICT
RowSet
������ͼ��������Դ�е���ʱ������ͻ������Դ����Ҫ���µ�ֵ��ͬ�ڸ��е� RowSet
�����ԭʼֵ������ζ������һ��ͬ�������Ѹ��»�ɾ��������Դ�е��С�
static final int DELETE_ROW_CONFLICT
RowSet
������ͼɾ������Դ�е���ʱ������ͻ������Դ����Ҫ���µ�ֵ��ͬ�ڸ��е� RowSet
�����ԭʼֵ������ζ������һ��ͬ�������Ѹ��»�ɾ��������Դ�е��С�
static final int INSERT_ROW_CONFLICT
RowSet
������ͼ���в�������Դ��ʱ������ͻ������ζ������һ��ͬ�������Ѿ�������Դ�в�����һ����Ҫ������о�����ͬ�������С�
static final int NO_ROW_CONFLICT
RowSet
������ͼ���¡�ɾ�����������Դ�е���ʱ�������κγ�ͻ��SyncResolver
�е�ֵ������ null
ֵ����ֵ��ָʾ������û�й��ڳ�ͻ�������Ϣ��
������ϸ��Ϣ |
---|
int getStatus()
SyncResolver
�ĵ�ǰ�еij�ͻ״̬����ָʾ�ڷ�����ͻʱ RowSet
���������ԵIJ�����
SyncResolver.UPDATE_ROW_CONFLICT
��SyncResolver.DELETE_ROW_CONFLICT
��SyncResolver.INSERT_ROW_CONFLICT
�� SyncResolver.NO_ROW_CONFLICT
Object getConflictValue(int index) throws SQLException
SyncResolver
����ĵ�ǰ����ָ���е�ֵ����������Դ�е��³�ͻ��ֵ��
index
- һ�� int
����ָ���� SyncResolver
����Ĵ����е��У��Ӹ��п��Ի�ȡ���³�ͻ��ֵ
SyncResolver
����ĵ�ǰ����ָ���е�ֵ
SQLException
- ����������ݿ���ʴ���Object getConflictValue(String columnName) throws SQLException
SyncResolver
����ĵ�ǰ����ָ���е�ֵ����������Դ�е��³�ͻ��ֵ��
columnName
- String
������ָ���� SyncResolver
����Ĵ����е��У��Ӹ��п��Ի�ȡ���³�ͻ��ֵ
SyncResolver
����ĵ�ǰ����ָ���е�ֵ
SQLException
- ����������ݿ���ʴ���void setResolvedValue(int index, Object obj) throws SQLException
RowSet
����ǰ���е� index �е�ֵ���� obj �ڲ�������Ϊ����Դ�е�ֵ��
index
- һ�� int
�����ṩҪ���ñ���ֵ���к�obj
- һ�� Object
�������� RowSet
���������õ�ֵ����������������Դ��
SQLException
- ����������ݿ���ʴ���void setResolvedValue(String columnName, Object obj) throws SQLException
RowSet
����ǰ������ columnName ��ֵ���� obj �ڲ�������Ϊ����Դ�е�ֵ��
columnName
- String
�������ṩҪ���ñ���ֵ��������obj
- һ�� Object
�������� RowSet
���������õ�ֵ����������������Դ��
SQLException
- ����������ݿ���ʴ���boolean nextConflict() throws SQLException
SyncResolver
�����ָ�����λ�ڵ�һ����ͻ��֮ǰ����һ�ε��� nextConflict
����ʹ��һ����ͻ�г�Ϊ��ǰ�У��ڶ��ε���ʹ�ڶ�����ͻ�г�Ϊ��ǰ�У��������ơ�
���÷��� nextConflict
����ʽ�ر�������������д��������������ҽ���� SyncResolver
����ľ�������
true
�������������һ�У��� false
SQLException
- ����������ݿ���ʴ����߽��������Ϊ TYPE_FORWARD_ONLY
boolean previousConflict() throws SQLException
SyncResolver
��������һ����ͻ�С�
���÷��� previousConflict
����ʽ�ر�������������д��������������ҽ���� SyncResolver
����ľ�������
true
����������ڽ�����У��� false
SQLException
- ����������ݿ���ʴ����߽��������Ϊ TYPE_FORWARD_ONLY
|
JavaTM Platform Standard Ed. 6 |
|||||||||
��һ���� ��һ���� | ��� ��� ������ | |||||||||
ժҪ�� Ƕ�� | �ֶ� | ���췽�� | ���� | ��ϸ��Ϣ�� �ֶ� | ���췽�� | ���� |
��Ȩ���� 2007 Sun Microsystems, Inc. ��������Ȩ���� ����������֤��������������ĵ����·ַ�������