package jtests;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
public class MyTest3 {
public static void main(String[] args) {
DateTimeFormatter fmt = new DateTimeFormatterBuilder()
.appendPattern("dd.MM.yyyy. HH:mm:ss")
.toFormatter();
LocalDateTime t1 = LocalDateTime.parse("01.01.2016. 00:00:00", fmt);
LocalDateTime t2 = LocalDateTime.parse("01.01.2013. 00:00:00", fmt);
System.out.println(t1);
System.out.println(t2);
System.out.println(t1.isAfter(t2));
System.out.println(t2.isAfter(t1));
}
}
select debit from mytable where ID=10
, программно прибавляем единичку к полученному debit, затем делаем update mytable set debit=11 where ID=10
. Результат приятно удивит.select debit, version as oldversion from mytable where ID=10
. Тогда update будет выглядеть примерно так update mytable set debit =11, version=version+1 where ID=10 and version=oldversion
. Но при этом придется всегда проверять, изменили ли мы данные или нет.Господа, что-то в разум не возьму... Всегда сам считал, что Exception - зло, а тут решил проверить. Я понимаю, что JVM может чего и оптимизнула...
IF execution time: 1231
EXCEPT execution time: 1260
package jtests;
import java.util.HashMap;
public class MyTest2 {
String testIf(HashMap<String, String> h, int i) {
String r = "None";
if(h.containsKey("NONEKEY")) {
r = h.get("NONEKEY");
}
return r;
}
String testExept(HashMap<String, String> h, int i) {
String r = "None";
try {
r = h.get("NONEKEY");
} catch(Exception e) {
return e.getMessage();
}
return r;
}
public static void main(String[] args) {
MyTest2 m = new MyTest2();
HashMap<String, String> h = new HashMap<String, String>();
h.put("KEY", "VALUE");
long startTime = System.currentTimeMillis();
for (int i = 0; i < 900000000; i++) {
m.testIf(h,i);
}
long endTime = System.currentTimeMillis();
System.out.println("IF execution time: " + (endTime - startTime) );
startTime = System.currentTimeMillis();
for (int i = 0; i < 900000000; i++) {
m.testExept(h,i);
}
endTime = System.currentTimeMillis();
System.out.println("EXCEPT execution time: " + (endTime - startTime) );
}
}
package jtests;
import java.lang.System;
public class MyTest {
class A {
String a () {
return("from A:a");
}
String b() {
return("from A:b - " + a());
}
}
class B extends A {
@Override String b() {
return ("from B:b - " + super.b());
}
}
public static void main(String[] args) {
MyTest m = new MyTest();
System.out.println("A");
A a = m.new A(); // Используем A
System.out.println(a.getClass().getName() + " * " + a.b());
System.out.println("B");
B b = m.new B(); // Используем B
System.out.println(b.getClass().getName() + " * " + b.b());
System.out.println("B -> A");
A ab = (A) m.new B(); // Используем B как A
System.out.println(ab.getClass().getName() + " * " + ab.b());
}
}
A
jtests.MyTest$A * from A:b - from A:a
B
jtests.MyTest$B * from B:b - from A:b - from A:a
B -> A
jtests.MyTest$B * from B:b - from A:b - from A:a
https://git-scm.com/book/ru/v1/Инструменты-Git-Подмодули
tar -tzf mybackup.dar
И tar -xzf mybackup.dar