Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lab5DB;
- import java.lang.reflect.Array;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.ResultSetMetaData;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.Arrays;
- import java.util.Collections;
- import java.util.List;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import javax.sql.RowSet;
- import javax.sql.rowset.FilteredRowSet;
- import javax.sql.rowset.Predicate;
- import javax.sql.rowset.RowSetFactory;
- import javax.sql.rowset.RowSetProvider;
- public class lab {
- public static void main(String[] args) {
- Connection conn = null;
- String url = "jdbc:mysql://localhost:3306/";
- String MyDB = "dek";
- String user = "root";
- String pass = "artur4ik";
- List<String> tables = Collections.<String>emptyList();
- List<String> values = Arrays.asList("value1", "value2", "something else", "it doesnt looks like anything to me");
- try {
- conn = DriverManager.getConnection(url + MyDB, user, pass);
- try {
- Statement st = conn.createStatement();
- st.executeUpdate("create table test_db (id int not null auto_increment, val varchar(100), primary key (id))");
- for(String v : values)
- st.executeUpdate("insert into test_db(val) values('" + v + "')");
- RowSetFactory rsf = RowSetProvider.newFactory();
- FilteredRowSet vals = rsf.createFilteredRowSet();
- vals.setCommand("select val from test_db");
- vals.execute(conn);
- vals.setFilter(new SearchFilter("^(value).*"));
- ResultSetMetaData rsmd = vals.getMetaData();
- int cc = rsmd.getColumnCount();
- while(vals.next()){
- for(int i = 1; i <= cc; i++){
- System.out.println(rsmd.getColumnLabel(i) + " " + vals.getObject(i) + " ");
- }
- System.out.println();
- }
- conn.close();
- }
- catch(SQLException e){
- e.printStackTrace();
- }
- }
- catch(Exception e){
- e.printStackTrace();
- }
- }
- }
- class SearchFilter implements Predicate {
- private Pattern pattern;
- public SearchFilter(String searchRegex){
- if(searchRegex != null && !searchRegex.isEmpty()){
- pattern = Pattern.compile(searchRegex);
- }
- }
- public boolean evaluate(RowSet rs) {
- try {
- if(!rs.isAfterLast()){
- String name = rs.getString("val");
- Matcher matcher = pattern.matcher(name);
- return matcher.matches();
- }
- else {
- return false;
- }
- }
- catch(Exception e){
- e.printStackTrace();
- return false;
- }
- }
- public boolean evaluate(Object arg0, int arg1) throws SQLException {
- throw new UnsupportedOperationException("No support");
- }
- public boolean evaluate(Object arg0, String arg1) throws SQLException {
- throw new UnsupportedOperationException("No support");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement