1、Caused by: java.sql.SQLException: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
问题背景:Quartz设置org.quartz.jobStore.txIsolationLevelReadCommitted = true,会跟Mysql设置的“复制级别(Row Level/Statement Level)”有冲突。
Unfortunately, this isolation level is incompatible with statement-level binary logging in MySQL . After a bit of research, it doesn't seem like MySQL is going to address this underlying issue. As of now, it appears that the only option will be to either switch to row-level binary logging or disable it entirely.
2、MySQL: Specified key was too long; max key length is 767 bytes
The InnoDB internal maximum key length is 3500 bytes;
The MyISAM internal maximum key length is 1000 bytes
3、现在通过mvn build的话,并没有build相应的test源码,得你cd到相应的目录下,执行:mvn test-compile命令才行
4、AddressMapper没有编译进去的问题解决:
ctrl+alt+s:Compilor——》Use external build勾选掉
5、在项目中,可以把一个对象序列化或者转换成JSON形式,然后放入数据库中的BLOB字段中,JSON转换方法:http://code.alibabatech.com/wiki/display/FastJSON/Examples
6、MyBatis运行流程,MyBatis会先调用setter方法,如果你的setter方法写错,会导致出错。
CronTask中,正确:
public CronTask setCouponCode(@NotNull String couponCode) {
pUpdate("couponCode", couponCode);
this.couponCode = couponCode;
return this;
}
错误:
public CronTask setCouponCode(@NotNull String couponCode) {
pUpdate("couponCode", couponCode);
return this;
}
这样写就不能正常产生一个CronTask对象.
7、代码一个不足之处在于
User的生成用了默认构造器,然后没有确保数据的合法性。解决就是把这个构造器设置为private的。
8、error dropping database can't rmdir errno 41
然后去网上搜,发现需要手动删除数据,然后在my.ini中找到数据存储目录,然后删掉之后,果然好了。爽。
处理问题,应该是软件自带的帮助文档,配置手册为主,因为只有这些资料才是最新的,最相关的。其他网上的资料只是给你提供一个思路。但是信息有可能是过时的,会误导你的。
9、调试程序技巧
程序出现错误的时候,会有一个错误路径,点进去,然后设置断点,下次Debug到这里,就能看到一些更详细的信息。
今天在调试Quartz的程序错误的时候,按照前述方法进去,然后发现SQL语句出现了错误,前缀不一样,最后更改了,爽。
10、英文原文和翻译
大小写:
列名,字段名:由charset决定,http://dev.mysql.com/doc/refman/5.1/zh/charset.html
数据库名,表名:由MySql配置决定
一个数据库对应一个文件夹,在windows下文件夹不区分大小写
一个表对应一个frm类型文件,在windows下文件不区分大小写
http://dev.mysql.com/doc/refman/5.1/zh/language-structure.html
翻译版本直接出错了,错的很离谱。
lower_case_table_names=1,一个是大小写敏感,另外地方换成不敏感了。
http://dev.mysql.com/doc/refman/5.6/en/identifier-case-sensitivity.html
11、根据Maven,IDE自动采用Ajc编译器,但是它不能很好地识别“中文”,因此得在Command line parameter中加入“-encoding utf8”
12、生成JavaDoc,错误“错误: 编码GBK的不可映射字符”,解决:在VM设置中,加入-encoding utf-8 -charset utf-8
13、为Word添加Code,http://blog.csdn.net/sunnymov/article/details/6446906
14、项目之中,几个模块之间的代码依赖可以通过将所有模块放入一个工作项目中,然后每次修改,都重新编译来发现问题。但是如果是Mybatis的XML文件依赖,那么不能通过静态编译发现,只能在跑起来之后,才能发现。这种依赖应该剔除掉。