我有专栏:
"LASTTOUCH" TIMESTAMP(9) NOT NULL ENABLE
Run Code Online (Sandbox Code Playgroud)
我必须将当前日期设置为此列.
但我不知道我怎么能这样做.
请问你能帮帮我吗?
使用Joda Time,您可以做一些非常酷的事情,例如:
package temp;
import org.joda.time.DateTime;
import org.joda.time.DateTimeComparator;
import org.joda.time.DateTimeFieldType;
public class TestDateTimeComparator {
public static void main(String[] args) {
//Two DateTime instances which have same month, date, and hour
//but different year, minutes and seconds
DateTime d1 = new DateTime(2001,05,12,7,0,0);
DateTime d2 = new DateTime(2014,05,12,7,30,45);
//Define the lower limit to be hour and upper limit to be month
DateTimeFieldType lowerLimit = DateTimeFieldType.hourOfDay();
DateTimeFieldType upperLimit = DateTimeFieldType.monthOfYear();
//Because of the upper and lower limits , the comparator shall only consider …Run Code Online (Sandbox Code Playgroud) 我运行这段代码:
public class User {
public static void main(String args[]) {
int array[] = new int[10];
int i = 1;
try {
System.out.println("try: " + i++);
System.out.println(array[10]);
System.out.println("try");
} catch (Exception e) {
System.out.println("catch: " + i++);
System.out.println(array[10]);
System.out.println("catch");
} finally {
System.out.println("finally: " + i++);
Object o = null;
o.hashCode();
System.out.println("finally");
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
try:1
catch:2
finally:3
在user.main的线程"main"java.lang.NullPointerException中的异常(User.java:17)
在块catch中 - ArrayIndexOutOfBoundsException,但是我们丢失了这个Exception,为什么呢?
我看到了有关的问题,一个很大的量System.exit(int status)上stackoverflow.
例如:
系统差异.Java中的exit(0),System.exit(-1),System.exit(1)
System.exit(0)和System.exit(-1)之间的区别
但我在部分问题上看不到答案:
我们是否有任何直接联系exit status,并System Error Codes为微软的产品(微软网站)?
当然,我们没有任何直接联系,但是:我们可以建立这种联系吗?
如果我们在Windows操作系统上运行我们的java程序并且我们的java程序有System.exit(int status)声明,我们可以使用System Error Codes list或不使用?
是不是好主意?
你怎么看待这件事?还有其他想法吗?
例:
FileNotFoundException;System.exit(int state);exit status等于2?因为(微软网站):
ERROR_FILE_NOT_FOUND
2 (0x2)
The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud) 使用Joda时间解析借记卡/信用卡的到期日期非常容易:
org.joda.time.format.DateTimeFormatter dateTimeFormatter = org.joda.time.format.DateTimeFormat.forPattern("MMyy").withZone(DateTimeZone.forID("UTC"));
org.joda.time.DateTime jodaDateTime = dateTimeFormatter.parseDateTime("0216");
System.out.println(jodaDateTime);
Run Code Online (Sandbox Code Playgroud)
日期: 2016-02-01T00:00:00.000Z
我尝试使用Java Time API做同样的事情:
java.time.format.DateTimeFormatter formatter = java.time.format.DateTimeFormatter.ofPattern("MMyy").withZone(ZoneId.of("UTC"));
java.time.LocalDate localDate = java.time.LocalDate.parse("0216", formatter);
System.out.println(localDate);
Run Code Online (Sandbox Code Playgroud)
输出:
引起:java.time.DateTimeException:无法从TemporalAccessor获取LocalDate:{MonthOfYear = 2,Year = 2016},ISO,UTC,类型为java.time.format.Parsed,类型为java.time.LocalDate.from(LocalDate.java :368)java.time.format.Parsed.query(Parsed.java:226)at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)... 30 more
我犯了什么错误以及如何解决它?
例如,我有这个类:
public class Col {
static void test(int a)
{
System.out.println("int");
}
public static void main(String args[])
{
Col.test(12); //1
Col.test((byte)12); //2
Col.test((long)100); //3
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有兴趣了解algoritm如何使用这段代码.我想,这个步骤:
1行 - 所有正确的调用方法与int param,完美.
2行 - 带字节参数的调用方法... oooops.做什么?Java尝试将byte扩展为int?这是真的?
3线呼叫方法与长参数...再次ooops.做什么?转换long到int java不行,因为精度损失.它的尝试?结果 - 例外.
比我添加这个:
public static void test(Object a)
{
System.out.println("Object");
}
Run Code Online (Sandbox Code Playgroud)
如果是电话:
Col.test((long)100);
Run Code Online (Sandbox Code Playgroud)
所有正确,没有异常所以,原始类型long和Object之间的关系是什么?
我有一个JUnit类,这个类包含几个测试方法.我正在尝试通过Eclipse IDE菜单Run As - > Junit Test 运行此测试类.
执行速度:
1次.30秒
2次:29秒
3次:23秒
在此之后,我正在尝试通过maven run终端执行测试类.在这种情况下执行速度:
1次:1分钟 10秒
2次:59秒
3次:56秒
所以,正如你所看到的,这两种情况之间存在很大差异.但是我们如何解释这个巨大的差异呢?
PS我正在使用最新版本的Eclipse IDE和maven.
此刻,我有两个课程:UserHibernateDao和TicketHibernateDao:
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import model.dao.Dao;
import model.entity.User;
public class UserDaoHibernate extends HibernateDaoSupport implements Dao<User> {
public User get(long id) {
return getHibernateTemplate().get(User.class, id);
}
public void save(User user) {
getHibernateTemplate().save(user);
}
public void remove(long id) {
getHibernateTemplate().delete(
getHibernateTemplate().get(User.class, id));
}
}
Run Code Online (Sandbox Code Playgroud)
第二个:
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import model.dao.Dao;
import model.entity.Ticket;
public class TicketDaoHibernate extends HibernateDaoSupport implements
Dao<Ticket> {
public Ticket get(long id) {
return getHibernateTemplate().get(Ticket.class, id);
}
public void save(Ticket ticket) {
getHibernateTemplate().save(ticket);
} …Run Code Online (Sandbox Code Playgroud) 我们的软件架构师决定从项目依赖项中删除Joda时间库,并使用Java 8时间的功能.我在做我们的项目的研究,我想找到,我们正在使用乔达时间lib中的所有地方,并确定我们使用的究竟是什么(乔达LocalDate,DateTime等等).
我不是Joda时间库的专家,我不是Java 8时间的专家,所以我有一些问题:
在代码中我看到很多这样的地方:
DateTime jodaDateTime = new DateTime();
doSomething(jodaDateTime.toDate());
Run Code Online (Sandbox Code Playgroud)
我有点困惑.
(Q1)DateTime在这种特殊情况下使用joda是否有意义
?我相信,我们可以使用经典java.util.Date,我们不需要Joda:
java.util.Date date = new Date();
doSomething(date);
Run Code Online (Sandbox Code Playgroud)
正确?
另外,我看到了这段代码:
org.joda.time.DateTime jodaDateTime = new DateTime();
org.joda.time.DateTime jodaDateTimeInPast = jodaDateTime.minusSeconds(60);
doSomething(jodaDateTimeInPast.toDate());
Run Code Online (Sandbox Code Playgroud)
我认为,java 8时间API为计算过去的任何日期提供了很好的支持,所以我知道如何将上面的代码替换为Java 8:
LocalDatetime java8DateTime = LocalDateTime.now();
LocaldateTime java8DateTimeInPast = java8DateTime.minusSeconds(60);
Date java8Date = Date.from(java8DateTimeInPast.atZone(ZoneId.systemDefault()).toInstant());
doSomething(java8Date);
Run Code Online (Sandbox Code Playgroud)
(Q2)我是否以正确的方式完成了它?我不确定100%.我刚刚发现这个链接有一个表:" 从Joda-Time转换为java.time "有我发现的信息,我需要使用java.time.ZonedDateTime或java.time.OffsetDateTime类,但不是java.time.LocalDateTime,因为LocalDateTime-
相同的概念 - 没有时区的日期和时间
请确认我的重构是正确的(Q1和Q2).
例如,我有实体类User:
public class User
{
private long id;
private String name;
// setters and getters
}
Run Code Online (Sandbox Code Playgroud)
接下来,我添加新的实体类: Comment
public class Comment
{
private long id;
private String comment;
// setters and getters
}
Run Code Online (Sandbox Code Playgroud)
接下来,我可以添加越来越多的实体类.
而且,此时我想:我可以/必须在逻辑结构中绑定/连接我的实体类还是没有?
我的意思是说?我试着解释一下:
要点1:所有这些类:User,Comment和更多的其他- POJO.
想法1:需要通过接口或抽象类对这些类进行逻辑绑定.
第2点:我看到,所有实体类都有相同的方法:getId和setId().
想法2:需要避免在所有类中声明此方法.
我的解决方案
添加界面BaseEntity:
public interface BaseEntity
{
public long getId();
public void setId(long id);
}
Run Code Online (Sandbox Code Playgroud)
添加所有实体类必须实现此接口.
结果我们逻辑连接所有实体类.我们保证每个实体类的实现getId()和setId()方法.
但这种解决方案不能解决多申报的问题getId和setId.
解决方案是创建一般BaseEntity类: …