今天在配置mycat时,遇到一个问题,解决了半天,现记录一下:
我的数据库是mysql,很多表都配置了自增id,但mycat启动之后,并不是直接就用的数据库的自增,而是自己配置的策略。
就是server.xml配置文件中的配置<property name="sequnceHandlerType">1</property>,我下载下来的包中,这个默认是2,代表时间戳的一个值。这个值特别大,直接超出了java的INTEGER类型的长度。后来我把这个配置成1,就是数据库的策略,这个我就不细说了,网上很多。但是之后,我又遇到一个问题,就是我的很多表是没有将表分库的,各个库都是独立的,只定义了一张全局表,但是不可能每张表都配置sequence,所以报错:
后来发现,我的mapper.xml文件里面,默认的insert 语句都是没有id的。
都是:INSERT INTO role (role_name) values (#{roleName}),
最后改成 INSERT INTO role (id,role_name) values (#{id},#{roleName}) 就可以了。