Синтаксис неявного соединения ANSI является более старым, менее очевидным и не рекомендуется.
Кроме того, реляционная алгебра допускает взаимозаменяемость предикатов в предложении WHERE
и INNER JOIN
, поэтому даже INNER JOIN
с предложениями WHERE
могут иметь предикаты, переупорядоченные оптимизатором.
Я рекомендую вам писать запросы в наиболее читаемом виде.
Иногда это включает в себя создание INNER JOIN
относительно «неполным» и поместив некоторые из критериев в WHERE
просто, чтобы сделать списки критериев фильтрации более легко поддерживаемыми.
Например, вместо:
SELECT *
FROM Customers c
INNER JOIN CustomerAccounts ca
ON ca.CustomerID = c.CustomerID
AND c.State = 'NY'
INNER JOIN Accounts a
ON ca.AccountID = a.AccountID
AND a.Status = 1
Запись:
SELECT *
FROM Customers c
INNER JOIN CustomerAccounts ca
ON ca.CustomerID = c.CustomerID
INNER JOIN Accounts a
ON ca.AccountID = a.AccountID
WHERE c.State = 'NY'
AND a.Status = 1
Но это зависит, конечно.
Не каждый файл jar является исполняемым.
Теперь вам нужно импортировать классы, которые находятся под банкой, в ваш java-файл. Например,
import org.xml.sax.SAXException;
Если вы работаете в среде IDE, вам следует отнести ее документацию. Или, по крайней мере, указать, какой из них вы используете здесь, в этом потоке. Это, безусловно, позволит нам помочь вам.
И если вы не используете какой-либо IDE, обратитесь к опции javac -cp . Тем не менее, гораздо лучше подумать о том, чтобы упаковать вашу программу в файл jar
и включить в нее все необходимые jar
s. Затем, чтобы выполнить ваш jar
, например
java -jar my_program.jar
, у вас должен быть файл META-INF/MANIFEST.MF
в вашем jar
. См. здесь для справки.
Как говорит workmad3, вам нужно, чтобы файл jar находился в вашем пути к классам. Если вы компилируете из командной строки, это будет означать использование флага -classpath. (Избегайте переменной среды CLASSPATH, это боль в шейке IMO.)
Если вы используете среду IDE, сообщите нам, какой из них мы можем вам помочь в выполнении шагов, специфичных для этой среды разработки.
Вам нужно добавить файл jar в путь к классам. Чтобы скомпилировать ваш класс java:
javac -cp .;jwitter.jar MyClass.java
Чтобы запустить ваш код (при условии, что MyClass содержит основной метод):
java -cp .;jwitter.jar MyClass
Вы можете иметь файл jar в любом месте. Вышеуказанная работа, если файл jar находится в том же каталоге, что и ваш java-файл.
Предположим, что нам нужно использовать класс Classname
, который содержится в файле jar org.example.jar
И ваш источник находится в файле mysource.java
Пример:
import org.example.Classname;
public class mysource {
public static void main(String[] argv) {
......
}
}
Во-первых, как видите, в коде вы должны импортировать классы. Для этого вам понадобится import org.example.Classname;
Во-вторых, при компиляции источника вам необходимо обратиться к файлу jar.
Обратите внимание на разницу в использовании :
и ;
при компиляции
javac -cp '.:org.example.jar' mysource.java
javac -cp .;org.example.jar mysource.java
После этого вы получите файл байт-кода mysource.class
Теперь вы можете запустить это:
java -cp '.:org.example.jar' mysource
java -cp .;org.example.jar mysource
Вы должны поместить файл .jar в свой путь к классу при компиляции / выполнении кода. Затем вы просто используете стандартный импорт классов в .jar.