Кратки съвети

Тук може да намерите полезни съвети и примери за много ситуации.

 

1 2 3 4 5 6

Автоматично генериране на годината в copyright съобщението на сайта


Повечето уеб сайтове имат подобно съобщение във футера си:

Copyright 1995-2010 example.com

Проблемът с него е, че трябва да се променя втората година всяка година. Ето как може да се автоматизира това с PHP:

Copyright 1995-<?php echo date('Y') ?> example.com


Генериране на serialVersionUID чрез използване на serialver


За генериране на serialVersionUID на Serializablе класовете може да се използва serialver инструмента от стандартната JDK дистрибуция. За целта е нужно да имате компилирания клас в jar файл или подходяща директорийна структура по пакети. Ето два примера

1. Класът org.example.MySerializable е компилиран в директорията project\bin\org\example\Myserializable.class. В такъв случай използваме следната команда

X:\JDK\bin\serialver -classpath project\bin org.example.MySerializable


2. Класът org.example.MySerializable се намира в jar файла project/lib/myjar.jar. Тогава:

/path/to/JDK/bin/serialver -classpath project/lib/myjar.jar org.example.MySerializable

И в двата случая добавяме генерираното число към класа и прекомпилираме:

private static final long serialVersionUID = 1234572295622776147L;

Определяне на разширението на файла чрез PHP


За да се определеи разширението на файла, използвайте следния фрагмент в PHP скрипт:

$ext = end(explode(".", $filename));

Тук $filename може да е самото име на файла, пълния или относителния път.
 


Динамично прилагане на instanceOf() в Java

Обикновено при проверка дали даден обект е от даден клас, се използва подобна конструкция:

...
if (myObject instanceof MyClass) {
...

Но в случай, че класът се определя динамично по време на изпълнение, този код не е коректен - не може да се използва нещо подобно:

...
Class<?> myClass = Class.forName("MyClass");
if (myObject instanceof myClass) {
...

Правилния начин е:

...
Class<?> myClass = Class.forName("MyClass");
if (myClass.isInstance(myObject)) {
...


Проверка за съществуване на таблица в база данни чрез JDBC

Функцията по-долу проверява дали дадена таблица съществува в базата данни, асоциирана с JDBC връзката. Използвани са само JDBC операции, без използване на таблици, заявки или функции, специфични за определена база данни, за да се постигне по-висока съвместимост.

public boolean isTablePresent(Connection connection, String tableNameToFind) throws SQLException {
    DatabaseMetaData dbm = connection.getMetaData();
    ResultSet rs = dbm.getTables(null, null, null, null);
    boolean result = false;
    while (rs.next()) {
        String tableName = rs.getString(3);
        if (tableNameToFind.equalsIgnoreCase(tableName)) {
            result = true;
            break;
        }
    }
    rs.close();
    return result;
}


Извеждане на празни променливи в DOS/cmd чрез echo+

За извеждане на екрана на съдържанието на дадена променлива използваме echo. Но командата echo има и друго предназначение - включване или изключване на извеждането на командите. Поради този факт се получава странен страничен ефект при извеждане на празни променливи. Например кода долу извежда "Echo is ON" вместо празен ред:

(set VAR=)
echo %VAR%

За да постигнем правилно поведение се добавя плюс накрая на echo:

(set VAR=)
echo+%VAR%


Откриване на даден Java class в директория с jar файлове


Ако имате директория с много jar фаилове и искате бързо да намерите този, който съдържа даден клас, ползвайте този скрипт:

findjar.sh:

dir=$1
class=$2
if [ $# -ne 2 ]
then
  echo "Usage: `basename $0` <directory> <class>"
  exit 1
fi

for file in `find $dir -name *.jar`
do
unzip -t $file | grep $class && echo $file
done

Пример: намиране на jar файл, който съдържа класа MyClass, в директорията /my/jars/folder:

findjar.sh /my/jars/folder MyClass



 


1 2 3 4 5 6