Advertisement
Guest User

Untitled

a guest
Dec 16th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. package lab5DB;
  2.  
  3. import java.lang.reflect.Array;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.ResultSet;
  7. import java.sql.ResultSetMetaData;
  8. import java.sql.SQLException;
  9. import java.sql.Statement;
  10. import java.util.Arrays;
  11. import java.util.Collections;
  12. import java.util.List;
  13. import java.util.regex.Matcher;
  14. import java.util.regex.Pattern;
  15.  
  16. import javax.sql.RowSet;
  17. import javax.sql.rowset.FilteredRowSet;
  18. import javax.sql.rowset.Predicate;
  19. import javax.sql.rowset.RowSetFactory;
  20. import javax.sql.rowset.RowSetProvider;
  21.  
  22. public class lab {
  23. public static void main(String[] args) {
  24.  
  25. Connection conn = null;
  26.  
  27. String url = "jdbc:mysql://localhost:3306/";
  28. String MyDB = "dek";
  29. String user = "root";
  30. String pass = "artur4ik";
  31. List<String> tables = Collections.<String>emptyList();
  32.  
  33. List<String> values = Arrays.asList("value1", "value2", "something else", "it doesnt looks like anything to me");
  34.  
  35. try {
  36. conn = DriverManager.getConnection(url + MyDB, user, pass);
  37. try {
  38. Statement st = conn.createStatement();
  39. st.executeUpdate("create table test_db (id int not null auto_increment, val varchar(100), primary key (id))");
  40. for(String v : values)
  41. st.executeUpdate("insert into test_db(val) values('" + v + "')");
  42. RowSetFactory rsf = RowSetProvider.newFactory();
  43. FilteredRowSet vals = rsf.createFilteredRowSet();
  44. vals.setCommand("select val from test_db");
  45. vals.execute(conn);
  46. vals.setFilter(new SearchFilter("^(value).*"));
  47. ResultSetMetaData rsmd = vals.getMetaData();
  48. int cc = rsmd.getColumnCount();
  49. while(vals.next()){
  50. for(int i = 1; i <= cc; i++){
  51. System.out.println(rsmd.getColumnLabel(i) + " " + vals.getObject(i) + " ");
  52. }
  53. System.out.println();
  54. }
  55.  
  56. conn.close();
  57.  
  58. }
  59. catch(SQLException e){
  60. e.printStackTrace();
  61. }
  62. }
  63. catch(Exception e){
  64. e.printStackTrace();
  65. }
  66.  
  67. }
  68. }
  69.  
  70. class SearchFilter implements Predicate {
  71. private Pattern pattern;
  72.  
  73.  
  74. public SearchFilter(String searchRegex){
  75. if(searchRegex != null && !searchRegex.isEmpty()){
  76. pattern = Pattern.compile(searchRegex);
  77. }
  78. }
  79.  
  80. public boolean evaluate(RowSet rs) {
  81. try {
  82. if(!rs.isAfterLast()){
  83. String name = rs.getString("val");
  84. Matcher matcher = pattern.matcher(name);
  85. return matcher.matches();
  86. }
  87. else {
  88. return false;
  89. }
  90. }
  91. catch(Exception e){
  92. e.printStackTrace();
  93. return false;
  94. }
  95. }
  96.  
  97. public boolean evaluate(Object arg0, int arg1) throws SQLException {
  98. throw new UnsupportedOperationException("No support");
  99. }
  100.  
  101. public boolean evaluate(Object arg0, String arg1) throws SQLException {
  102. throw new UnsupportedOperationException("No support");
  103. }
  104.  
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement