2014年工作中遇到的20个问题:201-220

201.Mybatis查询不到结果时,返回的是为空不为null的List。
   @Select("select * from p2p_role_privilege where privilege_acl = #{acl}")
List<Map<String, Object>> listByPrivilege(Integer acl);

202.日期的12小时表示与24小时表示。
yyyy-MM-dd HH:mm:ss 大写的HH,表示是24小时制,下午2点,就是14:00:00.
yyyy-MM-dd hh:mm:ss 小写的hh,表示是12小时制,下午2点,就是2:00:00.

格式化,一般发生在number_to_strdate,和date_to_strdate.
如果数据库直接用datetime存储,默认用的是24进制,不用转换。

另外,还会存在情况。
前端js,有的人会使用第三方的date扩展,这个时候“HH”是否表示是24进制,不一定的。

203.Eclipse新建动态web项目时,要选择web版本,有2.5和3.0等,2.5貌似不支持Tomcat7。
项目的Java版本等都是可以修改的,项目-属性-Project Facets,可以修改。

204.ftl中用html注释没用,ftl表达式仍然会执行
<!-- 上次登录时间:${date_to_ymdhms(currentUser.lastLoginTime)} -->
有了注释之后,前端看不到这段代码输出了,但是Freemarker表达式仍然会执行,如果表达式有错误,Freemarker仍然会打印错误信息。

205.Eclipse有个功能,非常坑爹。
打开若干窗口,多个窗口的源代码属于多个项目,如果一个源代码窗口被关闭了,Eclipse会切换到另外一个窗口,如果这个窗口所属的项目,
与上一个不一样,左边的导航栏会切换到新的项目。

但是,我很多时候,希望以左边导航条为“主视口”,不要随意滚动。

206.别名找不到。
<typeAliases>
<package name="com.p2p.user.dal.model" />
</typeAliases>

Base项目,定义了公共的代码。
user项目用到了base项目的model,正好用的是别名。

<package name="com.p2p.base.model"/>  
user项目mybatis-config.xml也要扫描base项目的model才行。

最初以为是Maven打包不对,么有更新。
Maven重新clean,然后install了很多次,还是不行,所以不再怀疑是maven的问题。
认真看控制台的错误提示,发现是mybatis的问题。

为什么不会去怀疑mybatis的问题呢?我想是由于:项目的结构已经稳定了,找不到包一般是maven的问题。

207.资金相关的系统,金额字段可以存储为double类型,比如12.523元。
也可以存储bigint类型,比如12523,就是12元52分3粒。

208.不能把SpringMVC的Errors放到Model中。
@RequestMapping(value = "/test")
public String test(@Valid WithdrawForm form,ModelMap model,Errors error){
error.rejectValue("card", "no_exist","无哦呜提示");
error.rejectValue("fee", "no_exist_fee","fee无哦呜提示");
model.addAttribute("name", "name");

model.addAttribute("error2", error.getAllErrors());
try {
ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("C:/a.txt"));
os.writeObject(error);
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}

访问test.json,结果返回的json中不会有error里的信息。
最终分析发现,转化成json,需要序列化。
而error继承了Exception,没有实现序列化,而且Exception是个大对象,堆栈信息会比较多。

验证是否实现序列化,写了个“对象输出流”,报异常,提示“没有实现序列化”。

另外,需要注意的是,使用Errors的前提是,使用了@Valid注解。

209.Maven项目经常出现各种各样的问题,刚刚又尝试了一种比较“无敌”的方法。
手动在Eclipse中修改Build Path,可能无法成功。
然后,就找到.classpath文件,手动修改。
如果还是不行,删除.project和.classpath,重新作为Maven工程导入,然后就可以了。

210.Eclipse重构实现类的时候,会提示该实现类实现了某个接口,也会重构接口的方法。

211.PageVo接收分页参数,第几页前端用户系统使用pageSize,后端管理系统使用的是rows。
为了同时兼容前后端,修改setter方法,实际分页的时候,只使用pageSize。
public void setRows(Integer rows) {
this.pageSize = rows;
this.rows = rows;
}

212.Mybatis增加时,获得自增autoincrement的值。
<insert id="add" keyProperty="id" useGeneratedKeys="true">
<selectKey resultType="int" keyProperty="id" order="AFTER">
SELECT
LAST_INSERT_ID()
</selectKey>
insert into
raikou_answer(ask_id,ask_user_id,user_id,summary,content,status,create_time)
values(#{ask_id},#{ask_user_id},#{user_id},#{summary},#{content},#{status},now())
</insert>
这是原来的写法,都是从网上copy的,不过发现这种“selectKey”没有必要写。
下面的写法更简洁。
<insert id="add" keyProperty="id" useGeneratedKeys="true">
insert into
raikou_search_log(keyword,hits,time,ip,browser,os,create_time)
values(#{keyword},#{hits},#{time},#{ip},#{browser},#{os},now())
</insert>

官网的权威说法:
keyProperty (仅对 insert 和 update 有用)唯一标记一个属性,MyBatis 会通过 getGeneratedKeys 的返回值
或者通过 insert 语句的 selectKey 子元素设置它的键值,默认:unset。
如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。

也就是说,useGeneratedKeys和selectKey子句,只使用一个就行了。

213.Map的key。
map.put(1,"a");
map.get("1");

放进去的值,和取出来的值很可能不一样。
map的key不是同一个,integer的1和string的“1”是不同的。

214.Log4j的properties和xml方式配置各有好处。
properties比较简洁,编辑方便。
xml结构化更清晰。
有点需要注意的是,properties格式,只需要把log4j.properties放到classpath下,自动能读取到。
而log4j.xml则需要手动初始化,在web.xml中配置listener或者java应用程序中,手动初始化一次才能使用。
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

215.2014年11月30日,某企业客户给我打了500元的技术服务费到支付宝。
当天,我看到余额增加了500元,把他转到余额宝,然后就没有关注了。
今天,我想看下上个月的收入记录,但是从支付宝的交易记录始终查询不到这笔收入。

我弄了半个多小时,找到了“支付宝转入余额宝500元”这笔记录,从时间和金额来讲,只有这一项和那笔500元的服务费相似。

突然,我注意到,这笔记录的后面,有个“向下的箭头-点此查看明细”,然后点击“查看收支明细”-找到了这笔记录。

我感觉这个功能,好难用啊,为什么不能直接查到这笔收入呢???

明天去问问在淘宝工作过,开发过支付宝一些功能的boss。

216.Boss的Eclipse项目,访问总是提示页面找不到。
前端页面找不到,应该就是配置文件,没有弄好,但是去看配置,确实没有问题。
尝试了很多方法,还是不行。
最后,我觉得应该配置文件被Jetty缓存了,清理Maven的target目录,重启Eclipse就好了。

217.今天,又在替一个GG擦屁股,代码写得有问题。
认证标志是char类型的,想根据某个int类型的status来判断,是否经过了认证。
int statuc=1;
char auth;
不能强制类型转换(char)1。
太坑了额~

218.再次强调第213个问题,map的key是object类型,取值的时候,一定注意key的类型。
int和string的“1”是不同的。
另外,枚举类型,是根据枚举的name还是index,要注意。
getIndex是获得枚举类型UserAuthName索引的方法。
UserAuthName.AUTH_REALNAME.getIndex()

219.数据库表的字段有几十个,而最常用的字段却放在了后面。
每次去看,都很麻烦,修改,把最常用的字段放在最前面。

220.date数据截断。
数据库日期是bigint(10),程序报错。
Data truncated for column ‘exptime‘ at row 1。
最初我以为是,bigint(10)太短,后来发现是:插入日期是Date,存储日期是int导致的。

相关的还有一个问题,bigint后面的(10)是神马意思呢?

时间: 2024-12-12 14:13:14

2014年工作中遇到的20个问题:201-220的相关文章

2014年工作中遇到的20个问题:141-160

141.日期转换. //输入的时间为毫秒的准确时间 //firstTime:1417139867916,lastTime:1419731867916 public static int getDayBetweenTwoDate(long firstTime, long lastTime){ //当天的0点:1417104000000 long firstCalendaStartTime = getTheDayStartTime(firstTime); //当天的0点:1419696000000

2014年工作中遇到的20个问题:120-140

121.Tomcat增加JVM启动参数.set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%set JAVA_OPTS=%JAVA_OPTS% -Dp2p.config_path=file:C:/Users/Administrator/git/p2p2/yiqihao JAVA_OPTS后的的"=",左右两边不能出现空格.以前好像总结过这个问题,这次又犯了相同的错误,和上面的Tomcat默认配置比较一下,很快就想起了这个问题. 122.图片无法响应,总

2014年工作中遇到的20个问题:161-180

161.Mybatis的Dao找不到xml中的映射配置,可能的一个原因是:xml配置中的namespace不对. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.p2p.user.dal.dao.MemberPointDao.selectForUpdateByUserId <mapper namespace="com.p2p.user.dal.dao.MemberPoi

2014年工作中遇到的20个问题:41-60

41.Maven工程中,src/main/webapp目录结构太深,不方便点击.在普通的Web工程中,WebContent直接就在项目的根目录下,打开页面比较方便.因此,为了方便,把Maven工程的src/main/webapp直接作为"Source  Code"加入到Build Path下,这样可以方便编辑webapp目录中的页面.但是,导致的结果是:Maven打包时,不会把webapp目录下的页面打包到target目录对应的文件中.因此,把src/main/webapp作为Sour

2013年工作中遇到的20个问题:181-200

每个人在工作中遇到的问题,很多都是类似的.了解别人遇到的问题,自己遇到的时候就可以很快地解决它. 很多人不屑于这种“细节问题”,但我想说,掌握这些细节问题一次可能只能帮你节省1s的时间,但是这个细节使用频率非常高, 1年可以节省不少时间的.如果按1秒*20次*300天=100分钟. 181.MySQL数据库是否区分大小写. 方法1:设置字符集校对collate 通过查询资料发现需要设置collate(校对) . collate规则: *_bin: binary case sensitive co

2014年工作中遇到的10个问题:221-230

221.新建Maven项目的2种方式. a.新建Dynamic Web Project,然后转换成Maven项目. b.新建Maven Project,Next,Next,选择cocoon-22-archetype-webapp. 第2种方式,是boss告诉我的,以前我一直喜欢用第1种方式. 第2种方式,暂时没有去实践.上次尝试了下,报错,郁闷~ 222.web.xml中配置taglib. 在Eclipse中会在taglib那一行有一个错误标志,但是运行的 时候没有问题-- 原因: 所使用版本的

分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据

原文:分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 今天开发找我,说数据库insert不进数据,叫我看一下 他发了一个截图给我 然后我登录上服务器,发现了可疑的地方,而且这个数据库之前有一段经历 在月初的时候这个数据库曾经置疑过,启动不起来 Could not redo log record (163041:116859:5), for transaction ID (0:-1175226963), on

知乎上关于前端工作中经常遇到的问题总结

有哪些经常被误用的 HTML.JavaScript.CSS 的元素.方法和属性? 以前想要把一个元素(input 之类的)设成只读的时候都是用 disabled,后来发现这是不对的. 因为在 HTML 里面,如果一个元素被设置成 disabled, 那么它的值就不会被发送到 server 端. 正确的做法应该是使用 readonly. 那么除了这个 disabled,在 Web 开发中还有哪些东西是经常被误用的? 添加评论分享 按票数排序 按时间排序 21 个回答 一丝,专业 CSS 吐槽,下面

2014年终工作总结

今天是我来到公司的第20天,2015年的钟声即将敲响,伴随着新的一年的到来,现将个人在2014年的工作总结如下: 首先,来到公司后,我就去熟悉公司原来的比特币的项目代码以及业务逻辑.说实话这个项目的代码写的不是很好,代码中有许多的冗余,代码的重用性太差,接口的通用性不强,而且少了很多关键代码该有的注释,所以,对于我来说,熟悉代码的过程有点长,但是,我每天努力坚持看,现在基本熟悉其中的整体框架以及业务流程.相信慢慢的会更加熟悉,将这个项目未完成的部分努力完成,完成的部分做得更好. 其次,就是现在正