java开发一个应用的总结
需要注意的地方:
(1)业务点要提前列出来,这样可防止遗漏;
(2)关键业务点一定要反复确定,最好能做个测试demo出来,在没有完成之前,Everything is possible;
(3)有陌生的技术点或业务点时,不要随便承诺完成时间;
技术上容易忽视的地方:
oracle如果有时间比较最好要使用to_char或to_date转化为同样的格式。如果db中存的是Date格式,java中的是String格式,
可使用这种转换格式:
to_date(to_char(org_time,’yyyy-MM-dd’),’yyyy-MM-dd’)=to_date(‘+变量+’,’yyyy-MM-dd’)
需要提的一点是,变量两边的单引号是必需的;
msg=msg.replace("%","");
/**
*
* @param date
* @return "yyyy-MM-dd"
*/
public static String getPreMonthDayDate(Date date){
Calendar calendar=Calendar.getInstance();
logger.debug("raw:"+formatToString(date, "yyyy-MM-dd"));
calendar.setTime(date);
calendar.add(Calendar.DATE,-1);
calendar.add(Calendar.MONTH, -1);
String result=formatToString(calendar.getTime(), "yyyy-MM-dd");
logger.debug("OutPut:"+result);
return result;
}
if (con==null||con.isClosed()) {
con=getConnection(database_user2, database_password2);
}
con.setAutoCommit(false);
con=getConnection(database_user2, database_password2);
ps=con.prepareStatement(insertSql);
for (int i = 0; i < receiverArr.length; i++) {
ps.setString(1, receiverArr[i]);
ps.setString(2, msg);
ps.addBatch();
}
ps.executeBatch();
con.commit();
java中 long t = System.currentTimeMillis(); System.out.println(t/60/60/24/365/1000);这个的答案就正确,而System.out.println(t/(60*60*24*365*1000));输出就错误. (long i1 = 60*60*24*365;
System.out.println(t/(i1*1000)); )这两句合起来也正确.为什么,怎么想都想不通 .求高手解答.谢谢了...
主要问题只有一个:
默认书写数字的方式下,数值是 int 型;
那么连续做乘法,是会溢出的
所以:
t/(60*60*24*365*1000)
应修改为(加个L):
t/(60l*60*24*365*1000)
最新文章
- Wordpress基础:安装主题和插件
- MATLAB实现频数直方图——hist的使用
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)【转载】
- 【Alpha阶段】第六次Scrum例会
- Android handle 多线程练习
- CSS浏览器兼容性写法小结
- iOS-协议与代理<;转>;
- Calibrating delay loop... 问题以及解决方法(RealARM开发板)
- lhgdialog在打开的窗口里点击按钮关闭当前窗口
- No.009 Palindrome Number
- .NET中使用log4net
- Update msi using vbscript
- ASP.NET常用导出Excel方法汇总
- android之针对fragment多次调用onCreateView的问题
- Table显示边框
- ceph之crush map
- CentOS 6.4 x86_64 安装GCC 4.7.3
- iOS开发-UI (一)常用控件
- 故障公告:IIS应用程序池停止工作造成博客站点无法访问
- Perl的浅拷贝和深度拷贝