# 与BeetlSQL2的区别 BeetlSQL3与2的区别不是很大,总的来说,如果因为升级到3,会导致编译不通过,如果能按照提示编译通过,升级就成功了 下面会列出一些主要区别,有下划线的需要重点看一下,因为是非编译问题(但不会对数据库产生影响,因为会跑错) ## 使用区别 * 包名更改,新包名是org.beetl.sql开头,这个更改无理由,个人喜好。可自动导入 * 定界符和占位符更改了,原来使用@和回车,现在改成`-- @`和回车,原来使用##,更改为#{},如果你还是喜欢2.0的风格,可以配置占位符和定界符,参考《Beetl语法入门》 * sqlId变化,2版本是用字符串表示,现在是SqlId对象,因此sqlManager的api调用,涉及到sqlId的,需要用对象构造。2版本用字符串表示不够面向对象 * <u>2版本中mysql数据库的主键如果是id,则不需要使用@AutoId. 3中强制主键使用@AutoId,@AssignId,或者@SeqId</u> * insert(xxx,true)方法,取消了是否需要设置自增到bean,3版本默认这种行为,直接使用insert(xxx)即可 * PageQuery不再推荐使用,改成PageRequest,查询结果为PageResult,PageQuery同时实现了这来个类,但不推荐,因为PageQuery这个类职责混乱,而且无法定制 * Mapper中取消了SqlStatment注解。默认就是按照sql文件查询 * Mapper中取消了SqlStatment.Type, 改成@Select 和 @Update。模仿了JPA, * <u>取消了@Orm注解,改成@Fetch注解,不在支持再sql文件里配置ORM关系(未来版本可能会支持),不支持的原因是过于复杂了,用的情况很少,用注解配置就可以了。</u> * SpringBoot集成配置文件变得更简单了,最大变化是2默认Dao结尾,3默认是Mapper结尾的作为扫描。参考`BeetlSqlConfig`类 ```properties #2.x模式是Dao,3.x改成Mapper beetlsql.xxx1.daoSuffix=Dao #2.x默认是DefaultNameConversion,3.x改成UnderlinedNameConversion beetlsql.xxx1.nameConversion=org.beetl.sql.core.UnderlinedNameConversion ``` * Spring集成配制文件变得更简单了 如果发现还有区别我没有列出来,或者无法兼容问题,请给我发邮件xiandafu@126.com,或者 qq支持群里询问