понедельник, 28 января 2013 г.

Записи по SQL



(SELECT)
                - select ПОЛЕ from Таблица
                - select name FROM mytable

(LIKE) Select что в поле было заданное значение
                - select поле from таблица where поле like '%заданное значение%'
                - select name from mytable where name like '%ал%'

(DISTINCT) Выборка различных значений в столбце таблицы с помощью ключегого слова DISTINCT
                - select distinct поле from таблица
                - select distinct name from mytable

(count) Количество записей в таблице
                - select count(*) поле from таблица
                - select count(*) name from mytable

(LIMIT 1) Ограничить количество выводимых записей
               - select * from таблица limit <количество строк>;

(where) Какой либо столбец равен значению
                - select поле from таблица where поле = 'значение'
                - select name from table where name = 'admin'

(rownum < n, Не больше, <) Вывод записей не более какого-либо количества
                - select поле from таблица where rownum < 10

(rownum between 10<rownum<20)
                - select поле from (select rownum r, поле from таблица) where r > 5 and r < 11
                - select name, price from (select rownum r, name, price from items) where r >  5 and r < 11;

(ORDER ASC, DESC - сортировка результата по возрастанию или убыванию)
        - SELECT * FROM address ORDER BY name ASC

(mysql) Подключение к серверу под пользователем jack, hello.
mysql -u jack -phello

(CREATE) Создание пользователя
CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass';

(GRANT ALL PRIVILEGES) Назначение привилегий
GRANT ALL PRIVILEGES ON *.* TO 'bill'@'%' WITH GRANT OPTION;

(USE) Использовать базу данных
                USE ‘DATA_BASE_NAME’;

(SHOW) Показать все базы данных сервера
SHOW DATABASES;

(SHOW) Показать все таблицы выбранной базе данных
SHOW TABLES;

Показать всех пользователей
SELECT User FROM mysql.user;

Показать тип полей в таблице
SHOW FIELDS FROM tableName where Field ='nameOfField';

(INSERT) Вставка строки в таблицу
INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...);

(ALTER) Изменить тип столбца
ALTER TABLE mytable CHANGE field field char(64); - field два раза, что бы указать что         изменяем столбец не меняя его названия

(UPDATE) Изменить содержимое строки
UPDATE  tomcat_users SET password = '2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b' WHERE user_name='curly'; - если не вставить условие WHERE, то всем записям в указанном поле буду сменены значения.

(DELETE) Удалить строку:
DELETE FROM table_name WHERE condition;

пятница, 20 января 2012 г.

Нечувствительный регистр для типа HashSet

Постановка задачи:
Нечувствительный регистр для типа HashSet

Допустим вам необходимо сделать так что бы в HashSet добавлялись элементы не обращая внимания на регистр. Я предлагаю сделать это одним из двух способов:


Решение:

Использовать TreeSet

Результат:

Упорядоченная коллекция TreeSet (так как TreeSet автоматически упорядочивает    
        помещаемые в него данные)

Java Код:

Set<String> set = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
String s1 = "TO";
String s2 = "to";
set.add(s1);
set.add(s2);
System.out.println(set.toString());

/////////////////////////////////////////////////////////////
Решение:

Использовать LinkedHashMap

Результат:

Коллекция с элементами в порядке добавления.

Java код:

Map<String, String> map = new LinkedHashMap<String, String>();
String s1 = "TO DO";
String s2 = "To do";
map.put(s1.toUpperCase(), s2);
map.put(s2.toUpperCase(), s2);
for (Map.Entry<String, String> entry : map.entrySet()){
System.out.println("key = " + entry.getKey());
System.out.println("value = " + entry.getValue());
}

Case insensitive to HashSet

Problem:
Case insensitive to HashSet

     You need to that the HashSet add elements without case insensitive. This can be completed in two ways:

1. First solution:

     Use TreeSet

Result:

      Sokrted collection TreeSet (since TreeSet automatically sorts the elements)

Java code:

     Set set = new TreeSet(String.CASE_INSENSITIVE_ORDER);
     String s1 = "TO";
     String s2 = "to";
     set.add(s1);
     set.add(s2);
     System.out.println(set.toString());

/////////////////////////////////////////////////////////////
2. Second solution:
     Use LinkedHashMap

Result:

     Collection with elements as they was added

Java code:

     Map map = new LinkedHashMap();
     String s1 = "TO DO";
     String s2 = "To do";
     map.put(s1.toUpperCase(), s2);
     map.put(s2.toUpperCase(), s2);
     for (Map.Entry entry : map.entrySet()){
     System.out.println("key = " + entry.getKey());
     System.out.println("value = " + entry.getValue());
      }

среда, 4 января 2012 г.

Как узнать путь к текущему java классу

Как узнать путь к текущему классу java.


String path = new File(".").getCanonicalPath();
System.out.println(path);

или

String path = System.getProperty("user.dir");
System.out.println(path);


Connecting to oracle


Java Connecting to Oracle:
You must import jdbc jar file to you project and make to this link from classpath file.

Java Соединение с БД Oracle
Если  вы хотите создать соединение к базе данных Oracle, то вам необходимо скачать jar файл - драйвер для Oracle, импортировать в свой проект этот драйвер, и прописать его в файле classpath.

Регулярные выражения java api / regular expressions java api

Регулярные выражения в java.
1. Замена одного или нескольких сиволов или цифр.
. - один любой символ.
.* - любой символ повторяется сколько угодно раз.
\\(любой символ) - два слеша в java используются для указания какой сивол нужно искать, т.е. после двух обратных слешов вы указываете определнный символ, и поиск будет выполнен по этому сивмволу. В java  некоторые буквы, определены как класс некоторых символов, например:
\\d - любая цифра (0-9)
\\d* - любая цифра повторяется ноль или несколько раз
\\w - люая буква
\\w+ - любая буква повторяется один или несколько раз
\\* - будет искаться символ звездочки
\\? - будет искаться символ знака вопроса
Пример:
Если у вас есть часть строки, и вторую часть вам нужно задать любыми 
символами, то просто создайте строку String с известной частью строки а 
неизвестные буквы замените точкой:
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Testing {
    public static void main(String[] args) {
        String pattern = "......metal";
         String[] array = new String[4];
        array[0] = "heavy metal";        //подходит
        array[1] = "dark metal";        //не подходит
        array[2] = "death metal";        //подходит
        array[3] = "progressive metal";    //не подходит
        Pattern p = Pattern.compile(pattern) ;
        Matcher m;
        for (int i = 0; i < array.length; i++) {
            m = p.matcher(array[i]) ;
            System.out.println(array[i] + " = "+ m.matches()) ;
        }
    }
}
Программа выведет:
heavy metal = true
dark metal = false
death metal = true
progressive metal = false

2. Динамичкое формирование регулярного выражения.
Если вы хотите формировать строку для регулярного выражения динамически, то:
Пример:
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Testing {
    public static void main(String[] args) {       
        String symbol_1 = "*";
        String symbol_2 = "?";
        String symbol_3 = "\\";
        String symbol_4 = "|";
        //формируем кодом строку "\\*|\\?", данная строка будет означать что необходимо искать символ звуздочки "*" или символ знака вопроса "?".
        // Два символа обратного слеша в java  используются для указания какой сивол нужно искать, т.е. после двух обратных слешов вы              
        // указываете определнный символ, и поиск будет выполнен по этому сивмволу.
        String pattern = symbol_3 + symbol_1 + symbol_4 + symbol_3 + symbol_2;
        System.out.println(pattern) ;
        String s = "?go*do**that*";       
        Pattern p = Pattern.compile(pattern) ; 
        String[] array = p.split(s) ;
        System.out.println(Arrays.deepToString(array)) ;       
    }
}