рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдРрд╕рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ (рдпрд╛рдиреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди, рдиреЗрдЯрд╡рд░реНрдХ рд╕реЙрдХреЗрдЯ рдФрд░ рд╕рдорд╛рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реЛрд▓рд┐рд╡рд░реНрд╕ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдП рд╣реИрдВ - рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдПрдХ рдЦрд░рд╛рдм рдЯреЛрди рд╣реИред рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг, рддреЛ рдЗрд╕реЗ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдпрд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг (рдпрд╛ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг) рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рджреЛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд╛рддрд╛рд╡рд░рдг (рдореЙрдбреНрдпреВрд▓) рдХреЗ рд╕рдВрдпреБрдХреНрдд рдХрд╛рд░реНрдп рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡рд┐рд╡рд╛рдж рдФрд░ рд▓рдбрд╝рд╛рдИ рдмрдВрдж рдирд╣реАрдВ рд╣реЛрддреЗред рдореИрдВ рдкрд╛рдардХреЛрдВ рд╕реЗ рдкрд╡рд┐рддреНрд░ рдпреБрджреНрдзреЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рднреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдореИрдВрдиреЗ рдЬрд┐рд╕ рдЙрдкрдХрд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ, рдЗрд╕рдХреА рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдХрд╛рд░реНрдп рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред
рдЙрдкрдХрд░рдг рдЪрдпрди
рд╢рд╛рдпрдж рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рд╕рдмрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рдЙрд╕ рдХреЛрдб рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдмрд╛рд╣рд░реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреА рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рдФрд░ рдмрдбрд╝реЗ)ред рд╣рд╛рдВ, рдЖрдк рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдореЛрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬреЗрдбреАрдмреАрд╕реА рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдСрдкрд░реЗрд╢рди рд╣реИрдВ, рддреЛ рдЖрдк рдмрд╛рдж рд╡рд╛рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдореЗрдВ рдЗрд╕реЗ рдкрдХрдбрд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирдХрд▓реА рд╡рд╕реНрддреБ рдореЗрдВ рдЧрд▓рддреА рдХрд░рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдХреНрдпрд╛ рд░рд╣рддрд╛ рд╣реИ? рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдХреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ ... рдФрд░ рдЕрдЧрд░ рдореИрдВ рдХрд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдмрд╣реБрдд рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ? рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓
HSQLDB рд╣реИ ред
HSQLDB рдЬрд╛рд╡рд╛ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рдЙрд╕реА рд╕рдордп, рдЬреЛ рдмрд╣реБрдд рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдард╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдФрд░ рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ HSQLDB рдХреЛ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрджрд░реНрд╢ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдмрдирд╛рддреА рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЬреЗрдбреАрдмреАрд╕реА рдФрд░ рдУрдЖрд░рдПрдо рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдПрд╕рдХреНрдпреВрдПрд▓ рдорд╛рдирдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбреАрдмреАрдПрдордПрд╕ рдЗрдВрдЬрди рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ), рддреЛ рд╣рдо рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХреЗ рджреМрд░рд╛рди рдПрдЪрдПрд╕рдХреНрдпреВрдПрд▓рдбреАрдмреА рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдкреЛрд╕реНрдЯрдЧреЙрдХреНрд╕реА рдпрд╛ рдУрд░реЗрдХрд▓ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдареАрдХ рд╣реИ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рд╣реИ рдФрд░ рдиреНрдпреВрдирддрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЦрдкрдд рдХрд░рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ рдбреЗрдЯрд╛ рд╕реЗ рднрд░рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИред рд╣рдореЗрдВ рдЗрд╕ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рднреА рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡рд┐рдЪрд╛рд░ рдмреЗрд╣рдж рдЦрд░рд╛рдм рд╣реИред рдЗрд╕рд▓рд┐рдП, рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХрдХрд░рдг рдФрд░ рд╕рддреНрдпрд╛рдкрди рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
DBUnit рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛ рд╕реЗрдЯреЛрдВ рдХреЗ рдмрд╛рдж рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
HSQLDB рдФрд░ DBUnit рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрдЯрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдХрдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рд╣реЛрдЧреА рдЬреЛ рдкрд╛рда рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреА рд╣реИ, рдЗрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╢рдмреНрджреЛрдВ рдореЗрдВ рддреЛрдбрд╝рддреА рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреА рдШрдЯрдирд╛ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдВрдХрдбрд╝реЗ рдЬреЛрдбрд╝рддреА рд╣реИред рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
public class User { private Connection sqlConnection; public User(Connection sqlConnectopn) { this.sqlConnection = sqlConnectopn; } private int insertOriginalString(String originalString) throws SQLException { int originalStringId = 0; PreparedStatement psInsert = sqlConnection. prepareStatement( "INSERT INTO original_strings (strings, date) VALUES (?, now())", PreparedStatement.RETURN_GENERATED_KEYS ); psInsert.setString(1, originalString); psInsert.execute(); ResultSet rsInsert = psInsert.getGeneratedKeys(); if(rsInsert.next()) { originalStringId = rsInsert.getInt(1); } else { throw new RuntimeException(); } rsInsert.close(); psInsert.close(); return originalStringId; } private int insertToken(int originalStringId, String token) throws SQLException { int tokenId = 0; PreparedStatement psTokenId = sqlConnection. prepareStatement("SELECT id FROM tokens WHERE word = ?"); psTokenId.setString(1, token); ResultSet rsToken = psTokenId.executeQuery(); if(rsToken.next()) { tokenId = rsToken.getInt(1); } else { PreparedStatement psInsertToken = sqlConnection. prepareStatement( "INSERT INTO tokens (word) VALUES (?)", PreparedStatement.RETURN_GENERATED_KEYS ); psInsertToken.setString(1, token); psInsertToken.execute(); ResultSet rsInserToken = psInsertToken.getGeneratedKeys(); if(rsInserToken.next()) { tokenId = rsInserToken.getInt(1); } else { throw new RuntimeException(); } rsInserToken.close(); psInsertToken.close(); } rsToken.close(); psTokenId.close(); return tokenId; } private void linkTokenToString(int originalStringId, int tokenId) throws SQLException { PreparedStatement psCreateLink = sqlConnection. prepareStatement("INSERT INTO links (original_string_id, token_id) VALUES(?,?)"); psCreateLink.setInt(1, originalStringId); psCreateLink.setInt(2, tokenId); psCreateLink.execute(); } public void logRequestString(String requestString) throws SQLException { String preParsed = requestString.replaceAll("\\W+", " "); String[] tokens = preParsed.split(" "); if(tokens.length > 0) { int originalStringId = insertOriginalString(requestString); for(String token: tokens) { linkTokenToString( originalStringId, insertToken(originalStringId, token) ); } } } }
рдЕрдм рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВред
public class UserTest { private IDatabaseTester tester = null; @Before public void instantiate() throws Exception { //Creating databse server instance tester = new JdbcDatabaseTester("org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:" + UUID.randomUUID().toString(), "sa", ""); //Creating tables tester.getConnection().getConnection().prepareStatement("CREATE SEQUENCE SEQU AS INTEGER START WITH 0").execute(); tester.getConnection().getConnection().prepareStatement("CREATE SEQUENCE SEQU2 AS INTEGER START WITH 0").execute(); tester.getConnection().getConnection().prepareStatement("CREATE SEQUENCE SEQU3 AS INTEGER START WITH 0").execute(); tester.getConnection().getConnection().prepareStatement("CREATE TABLE TOKENS(ID INT GENERATED BY DEFAULT AS SEQUENCE SEQU NOT NULL PRIMARY KEY, WORD LONGVARCHAR NOT NULL)").execute(); tester.getConnection().getConnection().prepareStatement("CREATE TABLE ORIGINAL_STRINGS(ID INT GENERATED BY DEFAULT AS SEQUENCE SEQU2 NOT NULL PRIMARY KEY, STRINGS LONGVARCHAR NOT NULL,DATE TIMESTAMP NOT NULL)").execute(); tester.getConnection().getConnection().prepareStatement("CREATE TABLE LINKS(ID INT GENERATED BY DEFAULT AS SEQUENCE SEQU3 NOT NULL PRIMARY KEY,TOKEN_ID INT NOT NULL,ORIGINAL_STRING_ID INT NOT NULL)").execute(); //Setting DATA_FACTORY, so DBUnit will know how to work with specific HSQLDB data types tester.getConnection().getConfig().setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new HsqldbDataTypeFactory()); //Getting dataset for database initialization IDataSet dataSet = new FlatXmlDataSetBuilder().build(this.getClass().getClassLoader().getResourceAsStream("template_set.xml")); //Initializing database tester.setDataSet(dataSet); tester.onSetup(); } @Test public void logRequestStringTest() throws SQLException, Exception { User man = new User(tester.getConnection().getConnection()); man.logRequestString("Hello, world!"); ITable template = new FlatXmlDataSetBuilder().build(this.getClass().getClassLoader(). getResourceAsStream("check_set.xml")).getTable("tokens"); ITable actual = DefaultColumnFilter.includedColumnsTable(tester.getConnection().createDataSet().getTable("tokens"), template.getTableMetaData().getColumns()); Assertion.assertEquals(template, actual); } }
рдбреЗрдЯрд╛рд╕реЗрдЯ рдлрд╛рдЗрд▓реЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
template_set.xml
<dataset> </dataset>
check_set.xml
<tokens WORD="Hello" /> <tokens WORD="world" />
рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рджреЗрдЦрддреЗ рд╕рдордп, рд╕рд╡рд╛рд▓ рддреБрд░рдВрдд рдЙрда рд╕рдХрддрд╛ рд╣реИ: тАЬрдпреВрдирд┐рдЯ-рдЯреЗрд╕реНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреНрдпреЛрдВ рд╣реИ! рдЙрдиреНрд╣реЛрдВрдиреЗ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рд╣реИ? тАЭ рд╣рд╛рдВ, рдпрд╣ рд╕рд╣реА рд╣реИ, рд╣рдо рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рд╕реЗрдЯ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд▓рд┐рдП рдбреАрдбреАрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдХрд╛рд░рдг xml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдРрд╕реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ DBUnit рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбрд┐рдЬрд╛рдЗрди рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:
ITable actual = DefaultColumnFilter.includedColumnsTable(tester.getConnection().createDataSet().getTable("tokens"), template.getTableMetaData().getColumns());
DefaultColumnFilter
рдлрд╝рдВрдХреНрд╢рди рд░рд┐рдХреЙрд░реНрдб рдХреА рдЖрдИрдбреА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдо рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ред рдкрд╛рдардХ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рди рдХреЗрд╡рд▓ рдУрдбреАрдмреАрд╕реА рдХрдиреЗрдХреНрд╢рди рдХреЗ "рдирдВрдЧреЗ" рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реИ, рдмрд▓реНрдХрд┐ рдУрдЖрд░рдИрдбреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рднреА рд╣реИред рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рдХреЛрдб!